Spring-Bean注入實現-03
阿新 • • 發佈:2020-12-01
Bean注入實現
-
建立web專案
-
新增spring包(5個)
- commons-logging-1.2.jar
- spring-beans-4.3.17.RELEASE.jar
- spring-context-4.3.17.RELEASE.jar
- spring-core-4.3.17.RELEASE.jar
- spring-expression-4.3.17.RELEASE.jar
1、Setter注入
-
在src->com.jt.demo1下建立User類。
新增成員:name,sex,age及setter/getter方法
package com.jt.demo1; public class User { private String name;//使用者姓名 private Integer age;//年齡 private String sex;//性別 public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
- 在src下建立配置檔案applicationContext.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" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <bean name="user1" class="com.jt.demo1.User"> <property name="name"> <value>無語</value> </property> <property name="age"> <value>30</value> </property> <property name="sex"> <value>女</value> </property> </bean> </beans>
- 在src->com.jt.demo1下建立TestUser類。
package com.jt.demo1; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestUser { public static void main(String[] args) { ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml"); User user=(User)context.getBean("user1"); System.out.println(user.getName()); System.out.println(user.getAge()); System.out.println(user.getSex()); } }
執行~
2、構造器注入
- 在src->com.jt.demo2下建立User類,並在類中新增構造器。
package com.jt.demo2;
public class User {
private String name;//使用者姓名
private Integer age;//年齡
private String sex;//性別
public User(String name, Integer age, String sex){
this.name=name;
this.age=age;
this.sex=sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
- 在src->applicationContext.xml中新增
<bean name="user2" class="com.jt.demo2.User">
<constructor-arg name="name">
<value>啊這</value>
</constructor-arg>
<constructor-arg name="age">
<value>23</value>
</constructor-arg>
<constructor-arg name="sex">
<value>男</value>
</constructor-arg>
</bean>
- 在src->com.jt.demo2下建立TestUser類。
package com.jt.demo2;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestUser {
public static void main(String[] args) {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
User user=(User)context.getBean("user2");
System.out.println(user.getName());
System.out.println(user.getAge());
System.out.println(user.getSex());
}
}
執行~
3、引用其他javaBean的例項物件
step1、建立java類
在demo3下建立User類
package com.jt.demo3;
public class User {
private String name;//使用者姓名
private Integer age;//年齡
private String sex;//性別
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
//輸出JavaBean的屬性值方法
public void printInfo(){
System.out.println("使用者姓名——"+name);//輸出使用者的姓名
System.out.println("使用者年齡——"+age);//輸出使用者的年齡
System.out.println("使用者性別——"+sex);//輸出使用者的性別
}
}
在demo3下建立Manager類
- 新增User類的成員和setter(和getter)方法
package com.jt.demo3;
public class Manager {
private User user;//注入User物件
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
step2、配置xml
在applicationContext.xml中新增
<bean id="user3" class="com.jt.demo3.User">
<property name="name">
<value>張三</value>
</property>
<property name="age">
<value>11</value>
</property>
<property name="sex">
<value>男</value>
</property>
</bean>
<bean name="manager" class="com.jt.demo3.Manager">
<property name="user">
<ref bean="user3"/>
</property>
</bean>
ref標籤引用其他javaBean的例項物件
step3、測試
在demo3下建立TestUser類
package com.jt.demo3;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestUser {
public static void main(String[] args) {
ApplicationContext ctx=new ClassPathXmlApplicationContext("applicationContext.xml");
Manager manager=(Manager)ctx.getBean("manager");
manager.getUser().printInfo();//獲取user3物件,並呼叫其方法
}
}
執行~