【JavaEE】NoteSet

【JavaEE】NoteSet

1、Spring的概念和优点

①. Spring是一个轻量级的IOC和AOP容器框架

②. Spring是非侵入式的,基于Spring开发的应用一般不依赖于Spring的类

③. Spring是个容器,包含并且管理应用对象的生命周期和配置。

④. Spring提供对事务的管理

⑤. Spring对主流的框架提供了很好的集成支持。

2、Spring中的IoC和DI思想

IoC(Inversion of Control 控制反转):是一种面向对象编程中的一种设计原则,用来减低计算机代码之间的耦合度。其基本思想是:借助于“第三方”实现具有依赖关系的对象之间的解耦。

DI(Dependence Injection 依赖注入):将实例变量传入到一个对象中去(Dependency injection means giving an object its instance variables)。

控制反转是一种思想,依赖注入是一种设计模式,IoC框架使用依赖注入作为实现控制反转的方式。

3、 ApplicationContext容器的使用

Application Context 是 spring 中较高级的容器,它可以加载配置文件中定义的 bean,

将所有的 bean 集中在一起,当有请求的时候分配 bean。

这个容器在 org.springframework.context.ApplicationContext interface 接口中定义。

4、属性setter方法注入的实现

利用Spring配置文件applicationcontext.xml配置bean,并且setter参数注入 JDBCDataSource的连接参数,这样Spring在创建JDBCDataSource对象以后就会自动化的调用setter方法注入数据库连接参数。

5、Bean的常用属性及其子元素

​ spring框架中主要有四种标签bean、alias、import、beans,其中bean标签是其他标签的基础。

7、bean标签的属性

1)scope:用来配置spring bean的作用域

2)singleton:表示bean为单例的

3)abstract:设置为true,将该bean仅仅作为模板使用,应用程序上下文不会试图预先初始化它

4)lazy-init:设为true,延迟加载,该bean不会在ApplicationContext启动时提前被实例化,而是第一次向容器通过getBean索取bean时实例化

注:只对singleton的bean起作用

5)autowire:自动装配

6)dependency-check:依赖检查

7)depends-on:表示一个bean的实例化依靠另一个bean先实例化

8)autowire-candidate:设为false,容器在查找自动装配对象时,将不考虑该bean,即它不会被考虑作为其他bean自动装配的候选者,但是该bean本身可以使用自动装配来注入其他bean

9)primary:该bean优先被注入

10)init-method:初始化bean时调用的方法

11)destory-method:容器销毁之前所调用的方法

12)factory-method:当调用factory-method所指向的方法时,才开始实例化bean

13)factory-bean:调用静态工厂方法的方式创建bean

8、bean的子元素

1)meta:元数据,当需要使用里面的信息时可以通过key获取

2)lookup-method:获取器注入,是把一个方法声明为返回某种类型的bean但实际要返回的bean是在配置文件里面配置的

3)replaced-method:可以在运行时调用新的方法替换现有的方法,还能动态的更新原有方法的逻辑

4)constructor-arg:对bean自动寻找对应的构造函数,并在初始化的时候将设置的参数传入进去

5)property:基本数据类型赋值

6)qualifier:通过Qualifier指定注入bean的名称

9、实例化Bean的三种方式

1)、使用类构造器实例化;(默认无参数,一般使用这种方式)

2)、使用静态工厂方法实例化(简单工厂模式);

3)、使用实例化工厂实例化(工厂方法模式)。

每种实例化方法的xml配置是不同的。

10、Bean的作用域和生命周期

在Bean容器启动会读取bean的xml配置文件,然后将xml中每个bean元素分别转换成BeanDefinition对象。在BeanDefinition对象中有scope 属性,就是它控制着bean的作用域。

Spring框架支持5种作用域:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0iHYYutF-1615693977484)(file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml10644\wps1.jpg)]

Bean实例生命周期的执行过程如下:

Spring对bean进行实例化,默认bean是单例;

Spring对bean进行依赖注入;

如果bean实现了BeanNameAware接口,spring将bean的id传给setBeanName()方法;

如果bean实现了BeanFactoryAware接口,spring将调用setBeanFactory方法,将BeanFactory实例传进来;

如果bean实现了ApplicationContextAware接口,它的setApplicationContext()方法将被调用,将应用上下文的引用传入到bean中;

如果bean实现了BeanPostProcessor接口,它的postProcessBeforeInitialization方法将被调用;

如果bean实现了InitializingBean接

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值