当前位置:网站首页 > Java基础 > 正文

javaspring教程(javaspring教程 pdf)



目录

一、概述

二、搭建基础框架

1. XML方案搭建Spring容器

2. Annotation方案搭建Spring容器

三、几个QA?


Spring学习专栏

1. Spring源码分析(一)基本框架介绍

2. Spring源码分析(二)两种方案搭建基础框架


若本文讲解有描述错误之处,或者有错别字,欢迎指正,希望大家毫不吝啬。

在正式分析Spring源码之前,我们有必要先来回顾一下Spring中最简单的用法。尽管我相信您已经对这个例子非常熟悉了。Bean是Spring中最核心的概念,因为Spring就像是个大水桶,而Bean就像是水桶中的水,水桶脱离了水也就没什么用处了。

1. XML方案搭建Spring容器

1. 引入jar包

引入 spring-context jar,它会自动帮我引入aop、beans、core、expression、jcl 如下图:

spring源码阅读 pdf_注解

2. User实体类

3. spring-config.xml 配置文件

在项目resources目录下创建spring-config.xml,把User实体类注入到Spring容器中

4. XmlUserTest 测试类

5. 控制打印输出

spring源码阅读 pdf_Xml_02

2. Annotation方案搭建Spring容器

1. UserEntity实体类

2. SpringConfig配置类

3. AnnotationUserTest 测试类

4. 控制打印输出

spring源码阅读 pdf_注解_03

1. Spring默认是单例还是多例?

默认单列模式(singleton),可以在类中添加作用域 @Scope(value = "prototype")

  1. singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例
  2. prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例
  3. request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效
  4. session:对于每次HTTP Session,使用session定义的Bean豆浆产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效
  5. globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效

  其中比较常用的是singleton和prototype两种作用域。对于singleton作用域的Bean,每次请求该Bean都将获得相同的实例。容器负责跟踪Bean实例的状态,负责维护Bean实例的生命周期行为;如果一个Bean被设置成prototype作用域,程序每次请求该id的Bean,Spring都会新建一个Bean实例,然后返回给程序。在这种情况下,Spring容器仅仅使用new 关键字创建Bean实例,一旦创建成功,容器不在跟踪实例,也不会维护Bean实例的状态。

  如果不指定Bean的作用域,Spring默认使用singleton作用域。Java在创建Java实例时,需要进行内存申请;销毁实例时,需要完成垃圾回收,这些工作都会导致系统开销的增加。因此,prototype作用域Bean的创建、销毁代价比较大。而singleton作用域的Bean实例一旦创建成功,可以重复使用。因此,除非必要,否则尽量避免将Bean被设置成prototype作用域。

2. Spring中@Lazy单例模式中的懒汉式和饿汉式

在单例模式默认懒汉模式,可以在类中添加@Lazy(value = false)

项目地址

https://gitee.com/gaibianzlp/spring-study-demo.git

到此这篇javaspring教程(javaspring教程 pdf)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • java面试基础笔试题(java面试题及答案整理)2025-06-13 22:18:04
  • jcenter()不支持浏览(浏览器不支持java applet)2025-06-13 22:18:04
  • java课程视频(java课程讲解)2025-06-13 22:18:04
  • vscode中配置java环境(vscode如何配置java环境)2025-06-13 22:18:04
  • java自学的网站(java自学app)2025-06-13 22:18:04
  • java的网站(java web网站)2025-06-13 22:18:04
  • java课程 在线(java在线教学)2025-06-13 22:18:04
  • java程序网站(java相关网站)2025-06-13 22:18:04
  • Java字符串转数组(java字符串转为数组)2025-06-13 22:18:04
  • Java字符串转时间(java字符串时间格式转换)2025-06-13 22:18:04
  • 全屏图片