Spring代理方式2

原创 2015年11月20日 23:11:53

一:UserService.java

package com.cloud.demo6;

public interface UserService {

   void querUsers();

   void saveUser();

   void deleteUser();

}

二:UserServiceImpl.java

package com.cloud.demo6;

public class UserServiceImpl implements UserService{

   @Override

   public void querUsers() {

      System.out.println("UserServiceImpl.querUsers()");

   }

   @Override

   public void saveUser() {

      System.out.println("UserServiceImpl.saveUser()");

   }

   @Override

   public void deleteUser() {

      System.out.println("UserServiceImpl.deleteUser()");

   }

}

三:LogJdkProxy.java

package com.cloud.demo6;

import java.lang.reflect.InvocationHandler;

import java.lang.reflect.Method;

import java.lang.reflect.Proxy;

public class LogJdkProxy implements InvocationHandler{

   private Object target;

   public LogJdkProxy(Object target){

      this.target=target;

   }

   /**

    * 创建代理对象

    * @return

    */

   public Object createProxyInstance(){

      return Proxy.newProxyInstance(getClass().getClassLoader(), target.getClass().getInterfaces(), this);

   }

   public Object invoke(Object proxy, Method method, Object[] args)

         throws Throwable {

      System.out.println("操作前");

      //执行原始对象方法

      Object result=method.invoke(target, args);

      System.out.println("操作后");

      return result;

   }

}

四:MainTest.java

package com.cloud.demo6;

import org.junit.Test;

public class MainTest {

   @Test

   public void test1() throws Exception {

      UserService userService=new UserServiceImpl();

      userService=(UserService) new LogJdkProxy(userService).createProxyInstance();

      userService.querUsers();

   }

}





版权声明:本文为博主原创文章,未经博主允许不得转载。

Spring动态代理的两种方式

第一种方式:利用JDK的反射机制(proxyJDK) package cn.xhx.jdkproxy; import java.lang.reflect.InvocationHandler; imp...
  • qq_24399533
  • qq_24399533
  • 2016年04月03日 18:01
  • 3426

spring实现AOP的两种方式以及实现动态代理方式

AOP是Aspect Oriented Programing的简称,面向切面编程。AOP适合于那些具有横切逻辑的应用:如性能监测,访问控制,事务管理以及日志记录。AOP将这些分散在各个业务逻辑中的代码...
  • zbuger
  • zbuger
  • 2016年03月30日 09:26
  • 7828

Spring AOP的代理模式详解

Spring AOP的代理模式详解 代理模式:代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些...
  • judyfun
  • judyfun
  • 2015年05月25日 20:39
  • 7736

Spring的两种代理方式:JDK动态代理和CGLIB动态代理

代理模式代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象...
  • cckevincyh
  • cckevincyh
  • 2017年02月10日 14:04
  • 8048

spring整合mybatis(原始dao和mapper代理两种方式)

一.原始Dao方式 1.引入jar包(maven文件和下面的Mapper代理方式一样) 2.applicationContext.xml ...
  • gwd1154978352
  • gwd1154978352
  • 2017年04月02日 21:26
  • 870

spring AOP动态代理使用和配置方式(手打)

理论的东西,随便看下吧, AOP是OOP的延续,是Aspect Oriented Programming的缩写,意思是面向切面编程。可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程...
  • u010963948
  • u010963948
  • 2016年04月15日 14:43
  • 2316

spring实现AOP的两种方式以及实现动态代理方式

AOP: 方式一:Annatation 注解方式 1、spring依赖库  * SPRING_HOME/dist/spring.jar  * SPRING_HOME/lib/jakar...
  • shangzhiliang_2008
  • shangzhiliang_2008
  • 2015年08月30日 11:30
  • 2369

spring 如何决定使用jdk动态代理和cglib(网易面试题)

Spring1.2: 将事务代理工厂[TransactionProxyFactoryBean] 或 自动代理拦截器[BeanNameAutoProxyCreator] 的 proxyTar...
  • samjustin1
  • samjustin1
  • 2016年08月31日 11:05
  • 3084

实现动态代理的两种方式

常见的实现代理的两种方式:(1)JDK动态代理(2)使用cglib产生代理 这两种方法各有好坏。jdk动态代理是由java内部的反射机制生成字节码并生成对象来实现的,而cglib代理底层是借助asm...
  • qq_35347459
  • qq_35347459
  • 2017年05月03日 20:14
  • 1191

关于proxy模式下,@Transactional标签在创建代理对象时的应用

@Transactional标签用于Spring中的事务标记。 先简单说下几个概念: 1)Spring的AOP是应用于Spring管理的bean上并基于代理实现的,代理的方法有java...
  • Seraphous
  • Seraphous
  • 2016年03月26日 16:08
  • 1370
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring代理方式2
举报原因:
原因补充:

(最多只允许输入30个字)