微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SSH中的Aop使用

  1. DAo层:
  2. import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
  3. import org.springframework.orm.hibernate3.*;
  4. public class UserDao extends HibernateDaoSupport {
  5.     
  6.     public User queryUserByID(String uid){
  7.         User user=null;
  8.         HibernateTemplate template=this.getHibernateTemplate();
  9.         user=(User)template.get(User.class, uid);       
  10.         return user;
  11.     }
  12.     
  13.     
  14.     
  15. }
  16. bo层:
  17. IUser.java:
  18. public interface IUserBO {
  19.     public boolean login(String id,String pwd);
  20.     
  21. }
  22. UserBo.java:
  23. public class UserBo implements IUserBO {
  24.     private UserDao dao=null;
  25.     private User loginUser=null;
  26.     private String msg="";
  27.     
  28.     public void setDao(UserDao dao) {
  29.         this.dao = dao;
  30.     }
  31.     public boolean login(String id,String pwd){
  32.         boolean rtn=false;
  33.         
  34.         User temp= dao.queryUserByID(id);
  35.         if(temp!=null){
  36.             if(temp.getUserPwd().equals(pwd)){
  37.                 this.setLoginUser(temp);                
  38.                 this.msg="登陆成功!!!";
  39.                 rtn=true;
  40.             }else{
  41.                 this.msg="密码不正确!!!";
  42.             }           
  43.         }else{
  44.             this.msg="未找到该用户!!!";
  45.         }
  46.         
  47.         return rtn;
  48.     }
  49.     public User getLoginUser() {
  50.         return loginUser;
  51.     }
  52.     private void setLoginUser(User user) {
  53.         this.loginUser=new User();
  54.         loginUser.setUserID(user.getUserID());
  55.         loginUser.setUserName(user.getUserName());
  56.         loginUser.setUserPwd(user.getUserPwd());
  57.     }
  58.     public String getMsg() {
  59.         return msg;
  60.     }
  61.     
  62. }
  63. 测试bo:
  64. public class Test {
  65.     public static void main(String[] args) {
  66.         ApplicationContext ctx=new FileSystemXmlApplicationContext ("/Webroot/WEB-INF/beans.xml");
  67.         TestDao dao=(TestDao) ctx.getBean("testdao");
  68.         List list=dao.query();
  69.         for(Object obj :list){
  70.             Book temp=(Book)obj;
  71.             System.out.println(temp.getBookName()+":");
  72.             Set set= temp.getAuthorset();
  73.             for(Object child:set){
  74.                 Author childnode=(Author)child;
  75.                 System.out.println(childnode.getAuthorName());
  76.             }
  77.         }
  78.         
  79.     }
  80. }
  81. model层 我就省略了
  82. util层:使用aop方法通知的代理机制
  83. SafeLogger.java:
  84. public class SafeLogger implements AfterReturningAdvice {
  85.     public void afterReturning(Object result, Method method, Object[] args, Object target) throws Throwable {
  86.          
  87.         String methodName=method.getName();
  88.         
  89.         if(methodName.equals("login")){
  90.         
  91.             boolean flag= Boolean.parseBoolean(result.toString());
  92.             if(flag){
  93.                 String uid= args[0].toString();
  94.                 Logger logger=Logger.getRootLogger();
  95.                 logger.warn("用户"+uid+"已登陆");
  96.             }
  97.         }
  98.     }
  99. }
  100. web层:
  101. ActionForm我省略了没什么可说的
  102. Action:
  103. public class LoginAction extends Action {
  104.     
  105.     private IUserBO bo;
  106.     
  107.     public void setBo(IUserBO bo) {
  108.         this.bo = bo;
  109.     }
  110.     public ActionForward execute(ActionMapping mapping, ActionForm form,
  111.             HttpServletRequest request, HttpServletResponse response) {
  112.         //1
  113.         LoginForm loginForm = (LoginForm) form;
  114.         boolean flag=false;
  115.         //2
  116.         if(bo.login(loginForm.getLoginID(), loginForm.getLoginPwd())){
  117.             flag=true;
  118.         }
  119.         //3
  120.         if(flag){
  121.             return mapping.findForward("success");
  122.         }else{
  123.             return mapping.findForward("failure");
  124.         }
  125.         
  126.     }
  127. }
  128. struts-config.xml配置文件
  129. <struts-config>
  130.   <data-sources />
  131.   <form-beans >
  132.     <form-bean name="loginForm" type="lee.web.LoginForm" />
  133.   </form-beans>
  134.   <global-exceptions />
  135.   <global-forwards />
  136.   <action-mappings >
  137.     <action attribute="loginForm" input="/login.jsp" name="loginForm"  path="/login"  scope="request"  type="org.springframework.web.struts.DelegatingActionProxy" validate="true" >
  138.       <forward name="success" path="/main.jsp" />
  139.       <forward name="failure" path="/error.jsp" />
  140.     </action>
  141.   </action-mappings>
  142.   <message-resources parameter="lee.web.UsersResources" />
  143.   <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
  144.         <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"/>
  145.   </plug-in>
  146.   <plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
  147.         <set-property property="contextConfigLocation" value="/WEB-INF/beans.xml" />
  148.   </plug-in>
  149. </struts-config>
  150. 最后是spring的配置文件:
  151. <?xml version="1.0" encoding="UTF-8"?>
  152. <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
  153. <beans>
  154.     <bean id="myds" class="org.apache.commons.dbcp.BasicDataSource">
  155.         <property name="driverClassName">
  156.             <value>com.microsoft.jdbc.sqlserver.sqlServerDriver</value>
  157.         </property>
  158.         <property name="url">
  159.             <value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Demo</value>
  160.         </property>
  161.         <property name="username">
  162.             <value>sa</value>
  163.         </property>
  164.         <property name="password">
  165.             <value>111</value>
  166.         </property>
  167.     </bean>
  168.     <bean id="MySessionFactory"
  169.         class="org.springframework.orm.hibernate3.LocalSessionfactorybean">
  170.         <property name="dataSource">
  171.             <ref bean="myds" />
  172.         </property>
  173.         <property name="hibernateProperties">
  174.             <props>
  175.                 <prop key="hibernate.dialect">
  176.                     org.hibernate.dialect.sqlServerDialect
  177.                 </prop>
  178.             </props>
  179.         </property>
  180.         <property name="mappingResources">
  181.             <list>
  182.                 <value>ws/model/Users.xml</value>
  183.                 <value>ws/model/Books.xml</value>
  184.             </list>
  185.         </property>
  186.     </bean>
  187.     
  188.     <bean id="userdao" class="ws.dao.UserDao" singleton="true" >
  189.         <property name="sessionFactory" ref="MySessionFactory" />
  190.     </bean>
  191.          <!--
  192.     <bean id="testdao" class="ws.dao.TestDao" singleton="true" >
  193.         <property name="sessionFactory" ref="MySessionFactory" />
  194.     </bean>
  195.     -->
  196.     <bean id="userbo" class="ws.bo.UserBo" singleton="true" >
  197.         <property name="dao" ref="userdao" />
  198.     </bean> 
  199.     
  200.     
  201.     <bean id="logger" class="ws.Util.SafeLogger" />
  202.     <bean id="userboProxy" class="org.springframework.aop.framework.Proxyfactorybean" >
  203.         <property name="proxyInterfaces" value="ws.bo.IUserBO" />
  204.         <property name="target" ref="userbo" />
  205.         <property name="interceptorNames">
  206.             <list>
  207.                 <value>logger</value>
  208.             </list>
  209.         </property>
  210.     </bean>
  211.     <bean name="/login" class="ws.web.LoginAction" singleton="false" >
  212.         <property name="bo" ref="userboProxy" />
  213.     </bean>
  214.     
  215. </beans>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐