依賴注入類型 | 配置元數據舉例 |
---|---|
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 { ... } |
自動綁定主要在xml模式下使用
模式 | 說明 |
---|---|
no | 默認值,未激活 Autowiring,須要手動指定依賴注入對象。 |
byName | 根據被注入屬性的名稱做爲 Bean 名稱進行依賴查找,並將對象設置到該 屬性。 |
byType | 根據被注入屬性的類型做爲依賴類型進行查找,並將對象設置到該屬性。 |
constructor | 特殊 byType 類型,用於構造器參數。 |
配置文件Beans.xmlhtml
<?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>
調用java
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(); } }
輸出spring
入門小站
配置文件Beans.xmlspa
<?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>
調用code
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(); } }
輸出xml
入門小站
原文: https://rumenz.com/rumenbiji/Spring-autowiring-model.htmlhtm