您好,登錄后才能下訂單哦!
這篇文章主要介紹了Spring框架構造注入type屬性實例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
進行測試,驗證一個問題,廢話不多說了,上代碼進行比較
package service.impl; import service.UserService; import dao.UserDao; import entity.User; /** * 用戶業務類,實現對User功能的業務管理 */ public class UserServiceImpl implements UserService { // 聲明接口類型的引用,和具體實現類解耦合 private UserDao dao; private String s1; private String s2; private int i1; // 生成無參構造方法 public UserServiceImpl() { } // 帶參數構造方法 為dao進行賦值 public UserServiceImpl(UserDao dao) { this.dao = dao; } public UserServiceImpl(UserDao dao,String s1) { this.dao = dao; this.s1=s1; } public UserServiceImpl(String s2,UserDao dao) { this.dao = dao; this.s2=s2; } public UserServiceImpl(int i1,UserDao dao) { this.dao = dao; this.i1=i1; } public UserDao getDao() { return dao; } // dao 屬性的setter訪問器,會被Spring調用,實現設值注入 public void setDao(UserDao dao) { this.dao = dao; } public void addNewUser(User user) { // 調用用戶DAO的方法保存用戶信息 dao.save(user); System.out.println("s1="+s1); System.out.println("s2="+s2); System.out.println("i1="+i1); } }
核心配置文件:
<bean id="UserService" class="service.impl.UserServiceImpl"> <!--通過構造函數的方式,實現構造注入 --> <constructor-arg> <ref bean="userDao" /> </constructor-arg> <constructor-arg> <value>123</value> </constructor-arg> </bean>
運行結果:
保存用戶信息到數據庫 s1=null s2=123 i1=0
由此可見,是沒有附上值的 ,為i1變量
解決辦法:對核心配置文件進行修改,使用type屬性,指定數據類型
運行結果:
保存用戶信息到數據庫 s1=null s2=null i1=123
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。