依赖注入类型
依赖注入类型 | 配置元数据举例 |
---|---|
Setter 办法 | <proeprty name=”user” ref=”userBean”/> |
结构器 | <constructor-arg name=”user” ref=”userBean” /> |
字段 | @Autowired User user; |
办法 | @Autowired public void user(User user) {…} |
接口回调 | class MyBean implements BeanFactoryAware {…} |
主动绑定 (Autowiring) 模式
主动绑定次要在 xml 模式下应用
模式 | 阐明 |
---|---|
no | 默认值,未激活 Autowiring,须要手动指定依赖注入对象。 |
byName | 依据被注入属性的名称作为 Bean 名称进行依赖查找,并将对象设置到该 属性。 |
byType | 依据被注入属性的类型作为依赖类型进行查找,并将对象设置到该属性。 |
constructor | 非凡 byType 类型,用于结构器参数。 |
Setter 办法注入(主动模式)
- ByName 通过名称
- ByType 通过类型
ByName 通过名称
配置文件 Beans.xml
<?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:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
<bean id="rumenz" class="com.rumenz.Rumenz">
<property name="id" value="123"/>
<property name="name" value="入门小站"/>
</bean>
<bean id="holder" class="com.rumenz.Holder" autowire="byType">
</bean>
</beans>
调用
package com.rumenz;
public class DemoApplication {public static void main(String[] args) {ClassPathXmlApplicationContext ca=new ClassPathXmlApplicationContext("Beans.xml");
ca.refresh();
Holder bean1 = ca.getBean(Holder.class);
System.out.println(bean1.getRumenz().getName());
ca.close();}
}
输入
入门小站
ByType 通过类型
配置文件 Beans.xml
<?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:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd">
<bean id="rumenz" class="com.rumenz.Rumenz">
<property name="id" value="123"/>
<property name="name" value="入门小站"/>
</bean>
<bean id="holder" class="com.rumenz.Holder" autowire="byType">
</bean>
</beans>
调用
package com.rumenz;
public class DemoApplication {public static void main(String[] args) {ClassPathXmlApplicationContext ca=new ClassPathXmlApplicationContext("Beans.xml");
ca.refresh();
Holder bean1 = ca.getBean(Holder.class);
System.out.println(bean1.getRumenz().getName());
ca.close();}
}
输入
入门小站
原文: https://rumenz.com/rumenbiji/Spring-autowiring-model.html