當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
体验Spring的“依赖注入”的优点
生活随笔
收集整理的這篇文章主要介紹了
体验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,如需轉載請自行聯系原作者
本文轉自 weijie@java 51CTO博客,原文鏈接:http://blog.51cto.com/weijie/66490,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的体验Spring的“依赖注入”的优点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: perl计算IP所在的子网范围
- 下一篇: android版多功能日历,欢迎大家测试