首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring自动署理-BeanNameAutoProxyCreator

2012-09-08 
Spring自动代理-BeanNameAutoProxyCreator1,定义Around处理package cn.hunnu.aop.autoproxyimport org.ao

Spring自动代理-BeanNameAutoProxyCreator

1,定义Around处理

package cn.hunnu.aop.autoproxy;import org.aopalliance.intercept.MethodInterceptor;import org.aopalliance.intercept.MethodInvocation;/** * Around 处理 * @author 肖波 * */public class ServiceDAOInterceptor implements MethodInterceptor{@Overridepublic Object invoke(MethodInvocation invocation) throws Throwable{String methodName = invocation.getMethod().getName();System.out.println("before execute method:"+methodName);Object result = invocation.proceed();System.out.println("after executed method:"+methodName);return result;}}

?

2,DAO、Service

package cn.hunnu.aop.autoproxy;public interface ITestDAO{public void query();}

?

package cn.hunnu.aop.autoproxy;public interface ITestService{public void service();}

?

package cn.hunnu.aop.autoproxy;public class TestDAO implements ITestDAO{@Overridepublic void query(){System.out.println("query(): query data from database...");}}

?

package cn.hunnu.aop.autoproxy;public class TestService implements ITestService{private ITestDAO dao;@Overridepublic void service(){System.out.println("service(): call service to execute business logic...");dao.query();}public ITestDAO getDao(){return dao;}public void setDao(ITestDAO dao){this.dao = dao;}}

?

3,上下文配置applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns:context="http://www.springframework.org/schema/context"      xmlns:aop="http://www.springframework.org/schema/aop"      xsi:schemaLocation="http://www.springframework.org/schema/beans              http://www.springframework.org/schema/beans/spring-beans-2.5.xsd              http://www.springframework.org/schema/context              http://www.springframework.org/schema/context/spring-context-2.5.xsd              http://www.springframework.org/schema/aop            http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">    <!-- BeanPostProcessor --><bean name="code">package cn.hunnu.aop.autoproxy;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class Main{public static void main(String args[]){//ApplicationContext ctx = new FileSystemXmlApplicationContext("src/applicationContext.xml");ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");ITestDAO dao = (ITestDAO)ctx.getBean("TestDAO");ITestService service = (ITestService)ctx.getBean("TestService");dao.query();service.service();}}

?

5,运行结果

before execute method:queryquery(): query data from database...after executed method:querybefore execute method:serviceservice(): call service to execute business logic...before execute method:queryquery(): query data from database...after executed method:queryafter executed method:service

?

热点排行