【spring】bean的装配
创始人
2025-05-28 03:07:14
0 次
目录 1.bean装配 2.装配的方式 3.基于xml装配 4.设置值注入 5.构造方法注入 6.基于注解的装配 7.自动装配
1.bean装配
1.bean的装配是指在spring容器中把bean组装在一起 2.装配的前提是spring容器需要知道bean的依赖关系 3. 通过依赖注入把bean装配在一起 4.将一个Bean自动注入到其他Bean的Property中叫自动装配
2.装配的方式
3.基于xml装配
4.设置值注入
1.Bean类需要提供一个默认的无参构造方法 2.Bean类需要为注入的属性提供set方法 3.配置文件通过 中的property标签为属性注入值
5.构造方法注入
1.Bean类需要提供有参构造方法 2.配置文件通过标签来定义构造方法的参数,也可以使用其value属性来设置该参数的值
6.基于注解的装配
1.@Component:描述Spring中的Bean,可以作用在任何层次 2.@Repository: 用于持久层(Dao层) 3.@Service:用于业务层(Service层) 4.@Controller:用于控制层(Controller层) 5.@Autowired:用于对Bean的属性变量、属性的setter方法以及构造方法进行标注,配合对应的注解处理器完成Bean的自动装配工作。默认按照Bean的类型进行装配。 6.@Resource:作用和@Autowired一样。区别是@Autowired默认Bean的类型装配,@Resource默认按照Bean的实例名称进行装配。@Resource有name和type两个属性,name会解析为Bean的实例名称,type会解析为Bean的实例类型。指定name则按实例名称进行装配,指定type则按类型进行装配,都不指定则先按name再按type,都没有的话抛出NoSuchBeanDefinitionException异常 7.@Qualifier:当一个接口A有两个实现类A1、A2,如果@Autowired private A a1;此时按类型装配,会找到a1和a2,此时会尝试按名称a1装配,得到a1。如果@Autowired private A b;此时按类型装配,会找到a1和a2,此时会尝试按名称b来装配,但找不到,此时会抛出异常NoUniqueBeanDefinitionException。可以加个@Qualifier注解指定名称装配
7.自动装配
1.spring的 元素中包含一个 autowire 属性,通过设置 autowire 的属性值来自动装配Bean 2.default:由的default-autowire属性值来确定 3.byName:根据属性的名称自动装配。容器将根据名称查找与属性完全一致的Bean,并将其属性自动装配 4.byType:根据属性的数据类型自动装配。 5.constructor:根据构造函数参数的数据类型,进行byType模式的自动装配 6.no:在默认情况下,不使用自动装配,Bean依赖必须通过ref元素定义
相关内容