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区别
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Spring