`
jiaguwen123
  • 浏览: 414054 次
  • 性别: 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习题集(选择、填空、判断和编程题)

    1. XML文档必须有且仅有一个根元素,如`&lt;root&gt;...&lt;/root&gt;`。 2. 文档声明(Document Type Declaration, DTD)或XML Schema用于定义XML文档的结构,但不是必需的。 3. XML元素区分大小写,例如`&lt;title&gt;`与`&lt;Title&gt;`是...

    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;/...

    百旺税控盘接口规范

    xml version="1.0" encoding="gbk"?&gt; &lt;business comment="注册码信息导入" id="ZCMDR"&gt; &lt;body yylxdm="1"&gt; &lt;input&gt; &lt;zcmxx&gt;注册码信息&lt;/zcmxx&gt; &lt;/input&gt; &lt;/body&gt; &lt;/business&gt; ``` - **参数说明** - `zcmxx`: ...

    一个简单的xml文件

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

    Ant使用详细介绍(中文版)

    xml version="1.0" encoding="GBK"?&gt; &lt;project name="测试脚本" default="copyfile" basedir="."&gt; &lt;target name="copyfile"&gt; &lt;copy file=”d:/a.txt” todir=”c:/temp” overwrite=”true”/&gt; &lt;/target&gt; &lt;/...

    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" ...

    WebService接入用户使用说明

    xml version='1.0' encoding='GBK'?&gt; &lt;resp&gt; &lt;code&gt;1000&lt;/code&gt; &lt;balance&gt;2000&lt;/balance&gt; &lt;pkgcount="2"&gt; &lt;item name="套餐名称" msgNum="套餐可用条数"/&gt; &lt;item name="套餐名称" msgNum="套餐可用条数"/&gt; &lt;/...

    ibatis的一个CRUD

    xml version="1.0" encoding="UTF-8"?&gt; &lt;!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-config-2.dtd"&gt; &lt;sqlMapConfig&gt; ...

    eclipse整合jetty

    xml version="1.0" encoding="GBK"?&gt; &lt;!DOCTYPE Configure PUBLIC "-//MortBay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd"&gt; &lt;Configure id="Server" class="org.mortbay.jetty....

    spring 配置文件详解

    xml version="1.0" encoding="UTF-8"?&gt; &lt;beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=...

    struct1与2的区别

    &lt;constant name="struts.i18n.encoding" value="GBK"/&gt; &lt;package name="test" extends="struts-default"&gt; &lt;action name="login" class="com.jb.action.LoginAction" method="login"&gt; &lt;result name="success"&gt;/...

    解决读取XML元素时的中文乱码的程序

    xml version="1.0" encoding="..."?&gt;`的声明,它指定了文件的编码方式。如果这个声明与实际编码不符,或者在读取和写入文件的过程中没有正确处理编码,就会出现乱码。 解决XML文件中文乱码问题的关键步骤包括: 1....

Global site tag (gtag.js) - Google Analytics