ICO注入屬性值操作
阿新 • • 發佈:2020-10-23
一:使用外部bean注入:
步驟一:在配置檔案中例項化實現類:
<bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean>
步驟二: 然後例項化使用類:
<bean id="userService" class="com.action.spring.service.UserService"></bean>
步驟三:此時通過注入外部
<property name="userDao" ref="userDaoImpl"></property>
其中name
為屬性名。此處需要注意的是和普通值使用的value
不同的是,注入外部Bean需要使用 ref
屬性。
直接上程式碼: 建立UserService
類和UserDao
類,其中UserDao
為抽象類。對UserDao
進行重寫UserDaoImpl
類。
-
UserServoce使用類:
package com.action.spring.service; import com.action.spring.dao.UserDao; import com.action.spring.dao.UserDaoImpl; public class UserService {
-
UserDao
基類
package com.action.spring.dao; public interface UserDao { public abstract void update() throws Exception; }
-
UserDao
類的實現類UserDaoImpl
類
package com.action.spring.dao; public class UserDaoImpl implements UserDao{ private String uname; public void setUname(String uname) { this.uname = uname; } @Override public void update() throws Exception { System.out.println("update..............."); } }
-
重點重點: 配置
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 http://www.springframework.org/schema/beans/spring-beans.xsd"> <!-- 注入外部bean --> <bean id="userService" class="com.action.spring.service.UserService"> <!--將userService中的元素userDao初始化為實現類userDaoImpl--> <property name="userDao" ref="userDaoImpl"></property> </bean> <bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean> </beans>
-
二:使用內部bean注入屬性
其實也就是不使用ref屬性,直接使用巢狀在內部bean:
<?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 http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="userService" class="com.action.spring.service.UserService"> <!--將userService中的元素userDao初始化為實現類userDaoImpl--> <property name="userDao"> <!--使用巢狀來是實現內部bean,但是個人建議最好用外部bean,更加清晰,而且可以例項化物件--> <bean id="userDao" class="com.action.spring.dao.UserDao"></bean> </property> </bean> <bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean> </beans>
三:使用級聯賦值注入屬性:
注意:級聯賦值的時候是需要有get方法獲取屬性的,沒有則會報錯
<bean id="userService" class="com.action.spring.service.UserService"> <!--將userService中的元素userDao初始化為實現類userDaoImpl--> <property name="userDao"> <bean id="userDao" class="com.action.spring.dao.UserDao"></bean> </property> <!--使用級聯賦值來直接給其中的元素賦值,但是注意,賦值的這個元素一定要有get方法來獲取--> <property id="userDao.name" value="hanxiao"></property> </bean> <bean id="userDaoImpl" class="com.action.spring.dao.UserDaoImpl"></bean> </beans>
四:IOC注入集合型別屬性
一:注入陣列型別屬性
二:注入List型別屬性
三:注入Map型別屬性
這個比較簡單。不直接設定value,而是在property標籤下面加入map,list,陣列的標籤,在他們的標籤下寫入多個value值
四:放入多個物件的list:
使用ref+bean傳遞路徑,引用外部類
五:提取部分型別屬性值eg:list:
<!-- 1.設定約束,在spring配置檔案中引入名稱util,設定xsi:schemLocation,將p名稱空間那個複製下來,然後把所有的beans換為util xmls:util="http://www.springframework.org/scheme/util" xsi:schemeLocation="http://www.springframework.org/scheme/util http://www.springframework.org/scheme/util/spring-util.xsd" 2.使用util標籤完成對list集合注入提取: <util:list id="booklist"> <value></value> <value></value> </util:list> --> <!--1.提取list集合型別屬性注入--> <util:list id="bookList"> <value>list1</value> <value>list2</value> <value>list3</value> </util:list> <!--提取list集合型別屬性注入使用,使用ref引入外部--> <bean id="book" class="com.spring_test.book"> <property name="list" ref="bookList"></property> </bean>