文章目錄
- 1、注入屬性—外部Bean
- 2、注入屬性—內部Bean
- 3、注入屬性—級聯賦值
- 4、注入屬性—集合屬性
- 5、提取集合注入部分
1、注入屬性—外部Bean
實作步驟:
- 創建兩個類Service和Dao,在Service類中以Dao作為屬性
public class Dao {
private String name;
public void setName(String name) {
this.name = name;
}
public void print(){
System.out.println("my name is "+name);
}
}
public class Service {
//以Dao型別創建屬性
private Dao dao;
public void setDao(Dao dao) {
this.dao = dao;
}
public void printf(){
dao.print();
}
}
- 在Spring組態檔中配置物件創建,配置屬性注入
<bean id="service" class="Test_bean.Service">
<!--
name:Service類中的屬性名
ref:創建的Dao物件的id標簽值
-->
<property name="dao" ref="dao"></property>
</bean>
<bean id="dao" class="Test_bean.Dao">
<property name="name" value="offer"></property>
</bean>
- 創建測驗類,進行測驗
public class Springtest {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
Service service = context.getBean("service", Service.class);
service.printf();
}
}
- 測驗結果
my name is offer
2、注入屬性—內部Bean
實作步驟:
- 創建兩個類Service和Dao,在Service類中以Dao作為屬性(同上)
- 在Spring組態檔中配置物件創建,配置屬性注入,結合上面的外部Bean共同學習
<bean id="service" class="Test_bean.Service">
<property name="dao">
<bean id="dao" class="Test_bean.Dao">
<property name="name" value="offer"></property>
</bean>
</property>
</bean>
- 創建測驗類,進行測驗(測驗結果和測驗代碼同上)
3、注入屬性—級聯賦值
- 創建兩個類Service和Dao,在Service類中以Dao作為屬性
Dao類同上,Service類中需要添加一個GetDao方法
public class Service {
//以Dao型別創建屬性
private Dao dao;
public void setDao(Dao dao) {
this.dao = dao;
}
//與級聯賦值配合使用,必須加上get方法
public Dao getDao() {
return dao;
}
public void printf(){
dao.print();
}
}
- 在Spring組態檔中配置物件創建,配置屬性注入,結合上面的外部Bean共同學習
<bean id="service" class="Test_bean.Service">
<!--
name:Service類中的屬性名
ref:創建的Dao物件的id標簽值
-->
<property name="dao" ref="dao"></property>
<property name="dao.name" value="offer"></property>
</bean>
<bean id="dao" class="Test_bean.Dao"></bean>
- 創建測驗類,進行測驗(測驗結果和測驗代碼同上)
4、注入屬性—集合屬性
在Spring組態檔中通過XML檔案來配置集合屬性,如陣列,List集合,set集合,Map集合
- 創建Service類,在Service類中定義上述四種型別的屬性,并生成相應的set方法
public class Service {
private String[] array;
private List<String> list;
private Set<String> set;
private Map<String,String> map;
public void setArray(String[] array) {
this.array = array;
}
public void setList(List<String> list) {
this.list = list;
}
public void setSet(Set<String> set) {
this.set = set;
}
public void setMap(Map<String, String> map) {
this.map = map;
}
@Override
public String toString() {
return "Service{" +
"array=" + Arrays.toString(array) +
", list=" + list +
", set=" + set +
", map=" + map +
'}';
}
}
- 注入陣列屬性
<property name="array">
<array>
<value>AAA</value>
<value>BBB</value>
</array>
</property>
- 注入list集合屬性
<property name="list">
<list>
<value>CCC</value>
<value>DDD</value>
</list>
</property>
- 注入set集合屬性
<property name="set">
<set>
<value>EEE</value>
<value>FFF</value>
</set>
</property>
- 注入map集合屬性
<property name="map">
<map>
<entry key="ab" value="GGG"></entry>
<entry key="cd" value="HHH"></entry>
</map>
</property>
- 創建測驗類,進行測驗
public class Springtest {
@Test
public void test(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
Service service = context.getBean("service", Service.class);
System.out.println(service);
}
}
- 測驗結果
Service{array=[AAA, BBB], list=[CCC, DDD], set=[EEE, FFF], map={ab=GGG, cd=HHH}}
5、提取集合注入部分
目的:如果只能將集合物件配置在某個bean內部,則這個集合的配置將不能重用,我們需要將集合bean的配置拿到外面,供其他bean參考,
1、在Spring組態檔引入名稱空間util
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
2、使用util標簽完成list集合提取
<util:list id="list">
<value>AAA</value>
<value>BBB</value>
</util:list>
<bean id="service" class="Test_bean.Service">
<property name="list" ref="list"></property>
</bean>
??????????????????????????????????????????????????
若對Spring基礎知識感興趣的可以關注一下博主,我會持續更新Spring基礎知識(一邊學習一邊記錄),一起進步,有錯誤的地方也可以在評論區指出來喔,謝謝大家啦!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/271312.html
標籤:java
上一篇:java流程控制
