欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

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

发布时间:2025/3/21 javascript 70 豆豆
生活随笔 收集整理的这篇文章主要介绍了 体验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的“依赖注入”的优点的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。