本文介绍: 在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要bean,并装配给该对象属性。(2)byName:通过bean名称进行自动装配,如果一个beanproperty 与另一bean 的name 相同,就进行自动装配。(1)no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。

Spring基于xml注入bean的几种方式

(1)Set方法注入;

(2)构造器注入:①通过index设置参数位置;②通过type设置参数类型

(3)静态工厂注入;

(4)实例工厂

详细内容可以阅读:https://www.iteye.com/blog/blessht-1162131

Spring自动装配

spring中,对象无需自己查找创建与其关联的其他对象,由容器负责需要相互协作的对象引用赋予各个对象使用autowire配置自动装载模式

在Spring框架xml配置中共有5种自动装配

(1)no:默认的方式是不进行自动装配的,通过手工设置ref属性来进行装配bean。

(2)byName:通过bean的名称进行自动装配,如果一个bean的 property 与另一bean 的name 相同,就进行自动装配。

(3)byType:通过参数数据类型进行自动装配。

(4)constructor:利用构造函数进行装配,并且构造函数的参数通过byType进行装配。

(5)autodetect:自动探测,如果有构造方法,通过 construct方式自动装配,否则使用 byType的方式自动装配。

基于注解方式

使用@Autowired注解来自动装配指定的bean。在使用@Autowired注解之前需要在Spring配置文件进行配置,<context:annotation-config />。在启动spring IoC时,容器自动装载了一个AutowiredAnnotationBeanPostProcessor后置处理器,当容器扫描到@Autowied、@Resource或@Inject时,就会在IoC容器自动查找需要的bean,并装配给该对象的属性。在使用@Autowired时,首先在容器中查询对应类型的bean:

如果查询结果刚好为一个,就将该bean装配给@Autowired指定数据

如果查询结果不止一个,那么@Autowired会根据名称查找

如果上述查找结果为空,那么会抛出异常。解决方法时,使用required=false

@Autowired用于构造函数成员变量、Setter方法

注:@Autowired和@Resource之间的区别

(1) @Autowired默认是按照类型装配注入的,默认情况下它要求依赖对象必须存在(可以设置它required属性为false)。

(2) @Resource默认是按照名称来装配注入的,只有当找不到与名称匹配的bean才会按照类型来装配注入。

Spring 框架中都用到哪些设计模式

(1)工厂模式:BeanFactory就是简单工厂模式的体现,用来创建对象实例

(2)单例模式:Bean默认为单例模式。

(3)代理模式:Spring的AOP功能用到了JDK的动态代理和CGLIB字节生成技术

(4)模板方法用来解决代码重复的问题。比如. RestTemplate, JmsTemplate, JpaTemplate。

(5)观察者模式定义对象键一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知被制动更新,如Spring中listener的实现–ApplicationListener。

原文地址:https://blog.csdn.net/weixin_44797327/article/details/134587264

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_5797.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注