Spring構造方法注入
阿新 • • 發佈:2018-10-31
預設情況下applicationContext.xml檔案中配置的程式可以通過Spring自動例項化物件。
示例:
package com.javaketang.test; public class User{ privete String name;//使用者名稱 private Intger age;//年齡 public String getName() { return name; } public void setName(String name) { this.name = name; } public Intger getAge() { return age; } public void setAge(Intger age) { this.age = age; } @Override public String toString() { return "名字為:" + name+";年齡:"+age; } }
無參構造方法配置:
<?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.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"> <bean id="user" class="com.javaketang.com.User"/> </beans>
編寫測試類
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("application-config.xml");
User u=ap.getBean("user",User.class);
u.setName("張三");
u.setAge(25);
System.out.println(u);
}
將會輸出以下結果:
名字為:張三;年齡:25
但是自動例項化物件呼叫的是無參構造方法,如果沒有提供無參構造方法,就會報錯。
有參構造方法配置:
<?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.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="user" class="com.javaketang.com.User">
<-! 可以不用指定型別,因為Spring可以自動匹配型別 -->
<constructor-arg value="張三" type="java.lang.String"/>
<constructor-arg value="25" type="java.lang.Intger"/>
</bean>
</beans>
編寫測試
public static void main(String[] args) {
ApplicationContext ap = new ClassPathXmlApplicationContext("application-config.xml");
User u=ap.getBean("user",User.class);
System.out.println(u);
}
將會輸出以下結果:
名字為:張三;年齡:25
注意:在你提供有參方法是一定要提供一個無參構造方法。
(中智軟體科技學校)