自动装配bean
程序员文章站
2022-07-03 19:30:41
1.通过autowire中的byName实现自动装配自动与set方法set后面的名字相同的bean的id匹配注意:id必须上下文唯一,且和自己对象中set方法后边的名字相同
1.通过autowire中的byName实现自动装配
自动与set方法set后面的名字相同的bean的id匹配
注意:id必须上下文唯一,且和自己对象中set方法后边的名字相同
<bean id="cat" class="com.zhu.pojo.cat"></bean>
<bean id="dog" class="com.zhu.pojo.dog"></bean>
<bean id="perple" class="com.zhu.pojo.perple" autowire="byName">
<!-- <bean id="perple" class="com.zhu.pojo.perple" autowire="byType">-->
</bean>
2.通过autowire中的byTpye实现自动装配
自动与自己对象属性类型相同的bean匹配
注意:class必须上下文唯一,id可以省略不写
<bean id="cat" class="com.zhu.pojo.cat"></bean>
<bean id="dog" class="com.zhu.pojo.dog"></bean>
<!-- <bean id="perple" class="com.zhu.pojo.perple" autowire="byName">-->
<bean id="perple" class="com.zhu.pojo.perple" autowire="byType">
</bean>
3.可以通过@Autowired注解来实现bean自动装配
1.开启注解支持
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
<!--开启注解支持-->
<context:annotation-config></context:annotation-config>
<bean id="cat" class="com.zhu.pojo.cat"></bean>
<bean id="dog" class="com.zhu.pojo.dog"></bean>
<bean id="perple" class="com.zhu.pojo.perple"></bean>
</beans>
2.在自己对象属性上添加@Autowired属性
package com.zhu.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class perple {
@Autowired
private dog dog;
@Autowired
private cat cat;
private String name;
}
4.可以通过@Resource注解来实现bean自动装配
配置步骤和@Autowired一样。
@Autowired和@Resource的却别
(1) @Autowired通过byType的方式实现,而且必须要求这个对象存在。
(2)@Resource默认通过byName方式实现,如果找不到id则通过byType实现
本文地址:https://blog.csdn.net/weixin_45723003/article/details/111939689