Spring自动装配
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
自动装配的三种方式
一、xml方式自动装配
byName: 会自动在容器上下文查找和自己对象set方法后面的值对应的bean id通过id匹配
//实体类
@Data
public class Pepole {
private String name;
private Books books;
private Hobbies hobbies;
<bean id="books" class="com.lmy.pojo.Books"/>
<bean id="hobbies" class="com.lmy.pojo.Hobbies"/>
<bean id="pepole" class="com.lmy.pojo.Pepole" autowire="byName">
<property name="name" value="zhangSan"/>
</bean>
二、 按类型自动装配
byType会自动在容器上下文中查找和自己对象属性类型相同的bean通过class匹配
注意使用autowire byType首先需要保证同一类型的bean对象在spring容器中唯一。如果不唯一会报不唯一的异常。
<bean id="books" class="com.lmy.pojo.Books"/>
<bean id="hobbies" class="com.lmy.pojo.Hobbies"/>
<bean id="pepole" class="com.lmy.pojo.Pepole" autowire="byType">
<property name="name" value="zhangSan"/>
</bean>
三、使用注解
@Autowied装配方式
按类型装配默认使用的装配方式。
按名称装配结合@Qualifier注解使用。
public class Pepole {
private String name;
@Autowired
@Qualifier("books1")
private Books books;
@Autowired
private Hobbies hobbies;
}
<!--开启属性注解支持-->
<context:annotation-config/>
<bean id="books2" class="com.lmy.pojo.Books"/>
<bean id="books1" class="com.lmy.pojo.Books"/>
<bean id="hobbies" class="com.lmy.pojo.Hobbies"/>
<bean id="pepole" class="com.lmy.pojo.Pepole"/>
@Resource装配方式
@Resource指定按type自动装配
@Resource(type = Books.class)
private Books books;
@Resource指定按name自动装配
@Resource(name = "books")
private Books books;
@Autowired与@Resource区别