`
jiaguwen123
  • 浏览: 404911 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

<?xml version="1.0" encoding="GBK"?>

阅读更多
使用Spring自动生成代理类,spring利用的是动态代理机制
接口

Java代码
public interface UserDao {  
void addUser();  
void deleteUser();  


public interface UserDao {
void addUser();
void deleteUser();
}
两个实现:

Java代码
public class UserDaoMySqlImpl implements UserDao {  
 
@Override 
public void addUser() {  
  System.out.println("UserDaoMySqlImpl.addUser()");  
}  
 
@Override 
public void deleteUser() {  
  System.out.println("UserDaoMySqlImpl.deleteUser()");  
 
}  
 
}  
public class UserDaoOracleImpl implements UserDao {  
 
@Override 
public void addUser() {  
  System.out.println("UserDaoOracleImpl.addUser()");  
}  
 
@Override 
public void deleteUser() {  
  System.out.println("UserDaoOracleImpl.deleteUser()");  
}  
 
}  
Device  
import java.lang.reflect.Method;  
 
import org.springframework.aop.AfterReturningAdvice;  
 
public class UserDaoBeforeAdvice implements AfterReturningAdvice {  
 
@Override 
public void afterReturning(Object arg0, Method arg1, Object[] arg2,  
   Object arg3) throws Throwable {  
  System.out.println("UserDaoBeforeAdvice.afterReturning()");  
}  
 


public class UserDaoMySqlImpl implements UserDao {

@Override
public void addUser() {
  System.out.println("UserDaoMySqlImpl.addUser()");
}

@Override
public void deleteUser() {
  System.out.println("UserDaoMySqlImpl.deleteUser()");

}

}
public class UserDaoOracleImpl implements UserDao {

@Override
public void addUser() {
  System.out.println("UserDaoOracleImpl.addUser()");
}

@Override
public void deleteUser() {
  System.out.println("UserDaoOracleImpl.deleteUser()");
}

}
Device
import java.lang.reflect.Method;

import org.springframework.aop.AfterReturningAdvice;

public class UserDaoBeforeAdvice implements AfterReturningAdvice {

@Override
public void afterReturning(Object arg0, Method arg1, Object[] arg2,
   Object arg3) throws Throwable {
  System.out.println("UserDaoBeforeAdvice.afterReturning()");
}

}

配置文件

Xml代码
<!-- 配置实现类的bean,可以把所有的实现类都写上 --> 
<bean id="userdao" class="com.dowebber.spring.aop_after.UserDaoMySqlImpl"></bean> 
<!--配置Advice的bean --> 
<bean id="beforeadvice" class="com.dowebber.spring.aop_after.UserDaoBeforeAdvice"></bean> 
<!--配置spring自动生成代理对象所需要的一些参数 --> 
<bean id="userdaoproxy" class="org.springframework.aop.framework.ProxyFactoryBean"> 
<property name="proxyInterfaces" value="com.dowebber.spring.aop_after.UserDao"/> 
<property name="target"> 
  <ref bean="userdao"/> 
</property> 
<property name="interceptorNames"> 
  <list> 
   <value>beforeadvice</value> 
  </list> 
</property> 
</bean> 

<!-- 配置实现类的bean,可以把所有的实现类都写上 -->
<bean id="userdao" class="com.dowebber.spring.aop_after.UserDaoMySqlImpl"></bean>
<!--配置Advice的bean -->
<bean id="beforeadvice" class="com.dowebber.spring.aop_after.UserDaoBeforeAdvice"></bean>
<!--配置spring自动生成代理对象所需要的一些参数 -->
<bean id="userdaoproxy" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="proxyInterfaces" value="com.dowebber.spring.aop_after.UserDao"/>
<property name="target">
  <ref bean="userdao"/>
</property>
<property name="interceptorNames">
  <list>
   <value>beforeadvice</value>
  </list>
</property>
</bean>
测试类

Java代码
import org.springframework.context.ApplicationContext;  
import org.springframework.context.support.ClassPathXmlApplicationContext;  
 
public class TestUserDaoAfterDevice {  
 
public static void main(String[] args) {  
    
  ApplicationContext context = new ClassPathXmlApplicationContext("com/dowebber/spring/aop_after/spring.xml");  
  UserDao dao = (UserDao)context.getBean("userdaoproxy");  
  dao.addUser();  
}  
 

分享到:
评论

相关推荐

    PHP简单实现解析xml为数组的方法

    本文实例讲述了PHP简单实现解析xml为数组...xml version=1.0 encoding=UTF-8?&gt; &lt;main xss=removed versionCode=1.0&gt; &lt;controller co=Aritles&gt; &lt;meth title=测试插件 do=aritle/&gt; &lt;/controller&gt; &lt;controller co=Ari&gt;

    XML习题集(选择、填空、判断和编程题)

    有关XML的习题,主要有填空,选择,判断和编程题,包含了XML的大部分知识。每一题都有详细的答案。

    xmltotxt转换工具

    xml version="1.0" encoding="gbk"?&gt; &lt;dataRoot&gt; &lt;record&gt; &lt;a1&gt;6&lt;/a1&gt; &lt;b2&gt;7&lt;/b2&gt; &lt;c3&gt;8&lt;/c3&gt; &lt;d4&gt;9&lt;/d4&gt; &lt;f5&gt;10&lt;/f5&gt; &lt;/record&gt; &lt;record&gt; &lt;a1&gt;11&lt;/a1&gt; &lt;b2&gt;12&lt;/b2&gt; &lt;c3&gt;13&lt;/c3&gt; &lt;d4&gt;14&lt;/d4&gt; &lt;f5&gt;15&lt;/f5&gt; &lt;/record&gt; ...

    txt 数据转换为 xml数据 C#编写的小工具

    xml version=/'1.0/' encoding=/'gbk/'?&gt; &lt;dataRoot&gt; &lt;record&gt; &lt;name score age &gt;name score age &lt;/name score age &gt; &lt;/record&gt; &lt;record&gt; &lt;name score age &gt;d1 61 6 &lt;/name score age &gt; &lt;/record&gt; &lt;record&gt; &lt;name ...

    txt csv数据转换为 xml数据 C#编写的小工具

    xml version=/'1.0/' encoding=/'gbk/'?&gt; &lt;dataRoot&gt; &lt;record&gt; &lt;name score age &gt;name score age &lt;/name score age &gt; &lt;/record&gt; &lt;record&gt; &lt;name score age &gt;d1 61 6 &lt;/name score age &gt; &lt;/record&gt; &lt;record&gt; &lt;name ...

    C++ Builder VC 读取XML tinyxml

    xml version="1.0" encoding="gbk" ?&gt; &lt;root&gt; &lt;Group gid="1" name="组1" remark="组1备注"&gt; &lt;item id="1" name="版本号" remark="02"&gt;987&lt;/item&gt; &lt;item id="2" name="代号C" remark="实际"&gt;666&lt;/item&gt; &lt;/...

    轻开平台(轻松互联网开发平台,原WebEasy)开发手册 20150915更新

    xml version="1.0" encoding="GBK"?&gt; &lt;Database DbUrl="jdbc:mysql://127.0.0.1:3306/" DriverName=...

    一个简单的xml文件

    xml version="1.0" encoding="GBK"?&gt; &lt;!DOCTYPE 联系人列表[ &lt;!ENTITY content "某公司部分联系人信息"&gt; &lt;!ELEMENT 联系人列表 (说明,联系人)&gt; &lt;!ELEMENT 联系人 (姓名,ID,公司,电话,地址)&gt; &lt;!ELEMENT 姓名 ...

    Hibernate1

    xml version='1.0' encoding='utf-8'?&gt; &lt;!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"&gt; ...

    JavaScript解析多子节点XML实例

    xml version="1.0" encoding="GBK"?&gt; &lt;a&gt; &lt;b&gt; &lt;c type="0" centerx="1" centery="2" dispname="3" linestr=""&gt; &lt;d name="OBJECTID" value="100" /&gt; &lt;d name="NAME" value="aaa" /&gt; &lt;/c&gt; &lt;c type="1" ...

    dom4j

    &lt;br&gt;&lt;br&gt;/**&lt;br&gt;&lt;br&gt;* @author Holen Chen&lt;br&gt;&lt;br&gt;*/&lt;br&gt;&lt;br&gt;public class Dom4jDemo {&lt;br&gt; public Dom4jDemo() {&lt;br&gt; }&lt;br&gt;&lt;br&gt; /**&lt;br&gt;&lt;br&gt; * 建立一个XML文档,文档名由输入属性决定&lt;br&gt;&lt;br&gt; * @param filename 需...

    java 生成XML串

    xml version="1.0" encoding="GBK" standalone="no"?&gt; &lt;B2CReq&gt; &lt;aaaaaa&gt;bbbbbb&lt;/aaaaaa&gt; &lt;ccccccc name="张三" id="110"&gt; &lt;sub2&gt;fdsdfsdfs&lt;/sub2&gt; &lt;/ccccccc&gt; &lt;dddddd&gt;333333333&lt;/dddddd&gt; &lt;/B2CReq&gt;

    JavaScript XML实现两级级联下拉列表

    xml version=”1.0″ encoding=”GBK”?&gt; &lt;select&gt; &lt;province id=”sx”&gt; 陕西 &lt;city id=”xa”&gt;西安&lt;/city&gt; &lt;city id=”bj”&gt;宝鸡&lt;/city&gt; &lt;city id=”ak”&gt;安康&lt;/city&gt; &lt;/province&gt; &lt;province id=”js”&gt; ...

    MyBatis SQL xml处理小于号与大于号正确的格式

    当我们需要通过xml格式处理sql语句时,经常会用到&lt; ,&lt;=,&gt;,&gt;=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错...xml version=1.0 encoding=GBK?&gt; &lt;queryForm token=

    PHP4和PHP5版本下解析XML文档的操作方法实例分析

    本文实例讲述了PHP4和PHP5版本下解析XML文档的操作方法。分享给大家供大家参考,具体如下...xml version=1.0 encoding=gbk?&gt; &lt;LeapsoulXML&gt; &lt;LeapsoulInfo&gt; &lt;name&gt;Leapsoul-PHP网站开发&lt;/name&gt; &lt;website&gt;https://ww

    Spring MVC 入门实例

    xml version="1.0" encoding="UTF-8"?&gt; 2 3 &lt;web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation=...

    php 获取xml接口数据的处理方法

    xml version="1.0" encoding="gbk"?&gt; &lt;root&gt; &lt;head&gt; &lt;actdate&gt;20170805&lt;/actdate&gt; &lt;trdate&gt;20170805&lt;/trdate&gt; &lt;trtime&gt;142410&lt;/trtime&gt; &lt;trseq&gt;20170807001&lt;/trseq&gt; &lt;succflag&gt;1&lt;/succflag&gt; &lt;ret...

    Spring实战之使用util:命名空间简化配置操作示例

    xml version=1.0 encoding=GBK?&gt; &lt;!-- 指定Spring配置文件的根元素和Schema 导入p:命名空间和util:命名空间的元素 --&gt; &lt;beans xmlns=http://www.springframework.org/schema/beans xmlns:xsi=...

    iuhyiuhkjh908u0980

    xml version="1.0" encoding="GBK" ?&gt; &lt;project name="demo" default="usage" xmlns:catalina="antlib:org.apache.catalina.ant"&gt; &lt;!--属性配置- ... by mshijie 2009-07-30 回复 (0) [转]使用Ant进行项目构建之二 ....

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    xml version="1.0" encoding="GB2312"?&gt; &lt;myfile&gt; &lt;title&gt;XML轻松学习手册&lt;/title&gt; &lt;author&gt;ajie&lt;/author&gt; &lt;Email&gt;ajie@aolhoo.com&lt;/email&gt; &lt;date&gt;20010115&lt;/date&gt; &lt;/myfile&gt; 七. 关于XML的更多 好了,到...

Global site tag (gtag.js) - Google Analytics