spring框架学习
1、开发中主要使用spring的什么技术?
a)IOC容器管理各层组件
b)使用aop配置声明式事务
c)整合其他框架
文章图片
文章图片
2、为什么说spring是一站式框架
文章图片
3、spring搭建
文章图片
(1)导包:基本包+日志包
(2)创建一个pojo对象
(3)书写配置注册对象到容器
------------配置文件:applicationContext.xml
------------这其中的导入约束是什么意思?
文章图片
(4)代码测试
文章图片
其实就是在实际编码过程中我们是如何使用这个对象的。首先是创建对象,然后就是通过容器调用他的方法来获取我们想要的对象。
4、spring概念
文章图片
文章图片
文章图片
5、spring中的工厂(容器)
(1)ApplicationContext
ApplicationContext接口有两个实现类:
ClassPathXmlApplicationContext:加载类路径下的spring配置文件
FileSystemXmlApplicationContext:加载本地磁盘下的spring的配置文件
(2)ApplicationContext和BeanFactory的区别
BeanFactory接口实现类的容器,特点是每次在获得对象的时候才会创建对象。
ApplicationContext接口实现类的容器,特点是每次加载配置文件,容器启动的时候就会创建容器中配置的所有对象。
结论:web开发中,使用applicationContext. 在资源匮乏的环境可以使用BeanFactory.
6、spring中的bean元素----看下视频明白一下空参构造创建对象
spring中如何配置bean对象
(1)通过全类名(反射)
(2)通过静态工厂或者实例工厂
如何创建bean对象
(1)空参构造的方式
文章图片
(2)静态工厂的方式
文章图片
(3)实例工厂的方式
文章图片
文章图片
bean元素属性注入---看视频明白set方法注入
set方法注入
文章图片
构造函数注入
文章图片
p名称空间注入
文章图片
spel注入
文章图片
复杂类型注入
文章图片
文章图片
文章图片
bean元素属性
Bean元素:使用该元素描述需要spring容器管理的对象
文章图片
使用name属性时,开发中不建议名称重复
scope属性:对象的作用域
文章图片
四个取值对应四个范围
当通过Spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域:
singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例
prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例
request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效
session:对于每次HTTP Session,使用session定义的Bean都将产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效
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作用域。
bean元素生命周期
1、通过构造器或者工厂方法创建bean实例
2、为bean的属性值设置值和对其他bean的引用
3、调用bean的初始化方法
4、使用bean对象
5、容器关闭时调用bean的销毁方法
文章图片
经过如上对Bean作用域的介绍,接下来将在Bean作用域的基础上讲解Bean的生命周期。
Spring容器可以管理singleton作用域下Bean的生命周期,在此作用域下,Spring能够精确地知道Bean何时被创建,何时初始化完成,以及何时被销毁。而对于prototype作用域的Bean,Spring只负责创建,当容器创建了Bean的实例后,Bean的实例就交给了客户端的代码管理,Spring容器将不再跟踪其生命周期,并且不会管理那些被配置成prototype作用域的Bean的生命周期。Spring中Bean的生命周期的执行是一个很复杂的过程,读者可以利用Spring提供的方法来定制Bean的创建过程。Spring容器在保证一个bean实例能够使用之前会做很多工作:
7、使用注解代替xml配置
文章图片
文章图片
(1)导包
(2)导入新的约束
(3)在spring配置文件applicationConfig.xml中开启使用注解代理配置文件
(4)在类中使用注解完成配置
注解有:将对象注册到容器(区分对象属于哪一层):
文章图片
修改对象的作用范围:
文章图片
文章图片
在类的成员变量上注解
引用类型注入,需要先把这个对象注册到容器中。
文章图片
@Autowired自动扫描容器中符合这个类型的对象,如果找到的话就会赋值给变量
文章图片
8、spring与junit整合测试
文章图片
@RunWith(SpringJUnit4ClassRunner.class)注解功能时帮助我们创建容器
@ContextConfiguration("classpath:applicationContext.xml")指定创建容器时使用的配置文件
容器创建好之后,从容器中取对象的方式如下:
文章图片
作用:方便程序的测试
spring对junit4的支持,可以通过注解方便的测试spring程序
9、spring的JDBC模板
【spring框架学习】
spring提供了很多模板整合dao技术
文章图片
文章图片
文章图片
推荐阅读
- android第三方框架(五)ButterKnife
- 由浅入深理解AOP
- Activiti(一)SpringBoot2集成Activiti6
- 继续努力,自主学习家庭Day135(20181015)
- python学习之|python学习之 实现QQ自动发送消息
- 标签、语法规范、内联框架、超链接、CSS的编写位置、CSS语法、开发工具、块和内联、常用选择器、后代元素选择器、伪类、伪元素。
- 一起来学习C语言的字符串转换函数
- SpringBoot调用公共模块的自定义注解失效的解决
- 解决SpringBoot引用别的模块无法注入的问题
- 定制一套英文学习方案