日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

体验Spring的“依赖注入”的优点

發布時間:2025/3/21 javascript 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 体验Spring的“依赖注入”的优点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、添加一個接口 名稱為UserInfoInterface,包名稱為springj2seapp 在該接口中添加一個一個業務方法 ???package springj2seapp; public interface UserInfoInterface { public??boolean doUserLogin(UserInfoVO oneUserInfo); } 2、再添加一個實現類 類名稱為UserInfoManage,包名稱為springj2seapp?實現UserInfoInterface ???? ????? 3、再增加一個業務實體UserInfoVO ? 在該VO類中新增兩個成員 private String userName; private??String userPassWord; 最后將產生出下面的代碼 package springj2seapp; public class UserInfoVO { private String userName=null; ???????private String userPassWord=null;??? public UserInfoVO() { super(); // TODO?自動生成構造函數存根 } public String getUserName() { ??????????????return userName; ???????} ???????public void setUserName(String userName) { ??????????????this.userName = userName; ???????} ???????public String getUserPassWord() { ??????????????return userPassWord; ???????} ???????public void setUserPassWord(String userPassWord) { ??????????????this.userPassWord = userPassWord; ???????} } 4、編程前面的UserInfoManage類實現功能 package springj2seapp; public class UserInfoManage implements UserInfoInterface { public UserInfoManage() { super(); // TODO?自動生成構造函數存根 } public??boolean doUserLogin(UserInfo oneUserInfo) ???????{ ??????????????String userName=oneUserInfo.getUserName(); ??????????????String userUserPassWord=oneUserInfo.getUserPassWord(); ????????????? //下面的代碼實際應該改變為對數據庫的訪問?????????? ??????????????boolean okOrNot=userName.equals("yang")&&userUserPassWord.equals("1234"); ??????????????return okOrNot; ???????} } 5、再添加一個測試的應用主類UserManageTest ? 編程該類 package springj2seapp; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class UserManageTest?????//該類模擬B/S中的控制層組件(如Servlet或者Action類) { public UserManageTest() { super(); ApplicationContext ctx=new???FileSystemXmlApplicationContext("SpringApplication.xml");??? ??????????????UserInfoInterface oneUserInfoManage = (UserInfoInterface) ctx.getBean("oneUserInfoManage"); ????????????? //下面的代碼模擬用戶的表單???????? ??????????????UserInfoVO oneUserInfo=new UserInfoVO(); ??????????????oneUserInfo.setUserName("yang"); ??????????????oneUserInfo.setUserPassWord("1234"); ????????????? ??????????????boolean returnResult=oneUserInfoManage.doUserLogin(oneUserInfo); ??????????????if(returnResult) ??????????????{ ?????????????????????System.out.println("您登錄成功!"); ??????????????} ??????????????else ??????????????{ ?????????????????????System.out.println("您登錄失敗!"); ??????????????}???????????? }???? public static void main(String[] args) { new UserManageTest(); } } 6、在*.xml中添加我們的業務組件的定義 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <!--??- Application context definition for "springapp" DispatcherServlet.??--> <beans> <bean id="oneUserInfoManage" class="springj2seapp.UserInfoManage"> </bean> </beans> 7、執行該程序 將出現下面的狀態 再模擬錯誤登錄-----只需要將測試類中的參數為錯誤的參數 將出現下面的錯誤提示 8、再修改*.xml文件以提供“屬性和構造”注入 <bean id="oneUserInfoManage" class="springj2seapp.UserInfoManage"> <constructor-arg> <ref bean="oneUserInfo"/> </constructor-arg> </bean> <bean id="oneUserInfo" class="springj2seapp.UserInfoVO"> ?<property name="userName"> <value>yang </value> </property> <property name="userPassWord"> <value>1234 </value> </property> </bean> 9、修改UserInfomanage package springj2seapp; public class UserInfoManage implements UserInfoInterface { boolean okOrNot; public UserInfoManage() { super(); // TODO?自動生成構造函數存根 } ???????public UserInfoManage(UserInfoVO oneUserInfo) ???????{ ? ??????????????doUserLogin(oneUserInfo); ??????????????// TODO?自動生成構造函數存根 ???????} public??boolean doUserLogin(UserInfo oneUserInfo) { String userName=oneUserInfo.getUserName(); String userUserPassWord=oneUserInfo.getUserPassWord(); //下面的代碼實際應該改變為對數據庫的訪問???????? okOrNot=userName.equals("yang")&&userUserPassWord.equals("1234"); return okOrNot; } public boolean getUserLogin() ???????{ ??????????????return okOrNot; ???????} } 10、再修改前面的接口以增加一個新的方法定義 package springj2seapp; public interface UserInfoInterface { public??boolean doUserLogin(UserInfo oneUserInfo); ?public boolean getUserLogin(); } 11、再修改前面的測試的主類 package springj2seapp; import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; public class UserManageTest?????//該類模擬B/S中的控制層組件(如Servlet或者Action類) { public UserManageTest() { super(); ApplicationContext ctx=new???FileSystemXmlApplicationContext("SpringApplication.xml");????? UserInfoInterface oneUserInfoManage = (UserInfoInterface) ctx.getBean("oneUserInfoManage");?????? //下面的代碼模擬用戶的表單???????? ??????????????boolean returnResult=oneUserInfoManage.getUserLogin(); if(returnResult) { System.out.println("您登錄成功!"); } else { System.out.println("您登錄失敗!"); }??????????? }???? public static void main(String[] args) {????????????new UserManageTest(); } } 12、再執行本程序 ? 12、再體驗IoC帶來的靈活性 1)改變屬性參數為錯誤的參數----模擬登錄失敗 2)再執行本程序-------但不需要重新編譯,將出現下面的結果 13、將JDK中的標準的Java?類注入到我們的業務組件中 <bean id="oneUserInfoManage" class="springj2seapp.UserInfoManage"> <constructor-arg> <ref bean="oneUserInfo"/> </constructor-arg> ??<constructor-arg> ???????<ref bean="dateBean"/> ??</constructor-arg> </bean> <bean id="oneUserInfo" class="springj2seapp.UserInfo"> <property name="userName"> <value>yang</value> </property> <property name="userPassWord"> <value>1234</value> </property> </bean> <bean id="dateBean" class="java.util.Date"/>??? 14、修改業務組件類的代碼以使用該Date package springj2seapp; import java.util.Date; public class UserInfoManage implements UserInfoInterface { boolean okOrNot; private Date dateBean=null;????? public UserInfoManage() { super(); // TODO?自動生成構造函數存根 } public UserInfoManage(UserInfoVO?oneUserInfo,Date dateBean) { this.dateBean=dateBean;?????????? doUserLogin(oneUserInfo); // TODO?自動生成構造函數存根 } public??boolean doUserLogin(UserInfo oneUserInfo) { String userName=oneUserInfo.getUserName(); String userUserPassWord=oneUserInfo.getUserPassWord(); //下面的代碼實際應該改變為對數據庫的訪問???????? okOrNot=userName.equals("yang")&&userUserPassWord.equals("1234"); String loginTime=dateBean.toLocaleString(); ??????????????System.out.println("您的登錄時間是:"+loginTime); return okOrNot; } public boolean getUserLogin() { return okOrNot; } } 15、再執行該程序









本文轉自 weijie@java 51CTO博客,原文鏈接:http://blog.51cto.com/weijie/66490,如需轉載請自行聯系原作者

總結

以上是生活随笔為你收集整理的体验Spring的“依赖注入”的优点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久全国免费视频 | 小泽玛利亚一区二区三区 | 一级做a爰片久久毛片潮喷 天天透天天干 | www.av88| 色综合色| 国产精品久久久毛片 | 岛国av一区| 男女免费毛片 | 亚洲天堂三区 | 韩国一级淫片免费看 | 欧美一级黄 | 久久久久国产精品熟女影院 | 蜜桃精品成人影片 | 国产成人欧美一区二区三区91 | 国产三级黄色 | 国产字幕在线观看 | 美女脱裤子让男人捅 | 麻豆欧美 | 欧美日韩八区 | 日本日皮视频 | 日本一区二区视频在线 | 泷泽萝拉在线播放 | 狠狠插综合 | 午夜小视频在线 | 亚洲无码精品一区二区三区 | 日日干av| 午夜少妇久久久久久久久 | 五月婷婷色综合 | 国产精品www在线观看 | 成人中文字幕+乱码+中文字幕 | 色欲久久久天天天精品综合网 | 午夜视频福利在线观看 | 欧美日韩性生活 | 国产91熟女高潮一区二区 | 91免费版在线 | 亚洲自拍偷拍一区 | 亚洲97视频 | 国产精品无码无卡无需播放器 | 一级黄色电影片 | 伊人春色av | 国产一二三区在线 | 夜夜综合 | 秋霞福利 | 最新日韩一区 | 波多野结衣在线一区 | free欧美性69护士呻吟 | av2018| 欧美精品在线免费观看 | 男人的天堂aa | 久久精品国产清自在天天线 | 欧美精品在线一区二区 | 国产一级影院 | 四虎永久免费观看 | 久久久久久久久久久久久久久久久 | 国产日韩二区 | 免费a视频在线观看 | 亚洲精品推荐 | 国产一区二区精品久久 | 99久久婷婷国产综合精品电影 | 亚洲视频手机在线 | 国产精品xxx在线 | jizz国产在线观看 | 成人91看片 | 青青草免费在线视频 | 色人阁五月 | 欧美精品久久天天躁 | 超碰在线人人草 | 日韩啪 | 欧美bbbbb| 国产精品欧美综合亚洲 | av鲁丝一区鲁丝二区鲁丝三区 | 欧美久久久影院 | 免费日韩一级片 | 精品在线观看免费 | 天天操天天射天天爽 | 不卡免费av | 国产高清色 | 亚洲看| 久久网页 | 欧美手机在线视频 | 天天伊人网 | 蜜臀999| 中文在线字幕免费观 | 亚洲男人天堂视频 | 婷婷激情五月 | 日韩极品在线观看 | 日本高清精品 | 日日操狠狠操 | 天天干天天天 | 爆乳熟妇一区二区三区 | 真性中出| 中国老熟妇自拍hd发布 | 久久婷婷五月综合色国产香蕉 | 中国zzji女人高潮免费 | 天堂免费av| 日韩成人精品在线观看 | 能看的av| 毛片视频网 | 国产极品在线观看 |