为什么有这个东西,一方面时AOP框架的需要,另一方面是增加软件逆向的难度动态生成类的技术目前大体上分为两类,一类是通过操作字节码框架如cglib/Javassist去实现,另一类就是JNI方式,调用dll/so库,内存中动态还原。这两种方式都能实现隐藏类看一个Javassist动态生成类的例子packagecom.vvvtimes;importjava.lang.reflect.Modifier;
分类:
编程语言 时间:
2018-04-23 11:15:29
阅读次数:
230
一:在JDK里也有动态代理的类和接口,是Proxy和InvocationHandler,但是Proxy只能为接口产生代理类,借助InvocationHandler的实现类来完成对类对象的代理; 但是在Spring里可以为没有实现接口的类进行aop编程,这时候要模拟则可以借助cglib的Enhance ...
分类:
其他好文 时间:
2018-04-22 20:03:12
阅读次数:
185
oom? java.lang.OutOfMemoryError: java head space 堆内存溢出 java.lang.OutOfMemoryError: Permgen space java永生代溢出, 即方法去溢出,一般是因为出现大量的Class和jsp ,或者采用cglib 反射机制 ...
分类:
编程语言 时间:
2018-04-17 23:53:26
阅读次数:
330
Spring1.2: 将事务代理工厂[TransactionProxyFactoryBean] 或 自动代理拦截器[BeanNameAutoProxyCreator] 的 proxyTargetClass 属性,设置为true,则使用CGLIB代理,此属性默认为false,使用JDK动态代理. 以下 ...
分类:
编程语言 时间:
2018-04-17 11:39:14
阅读次数:
127
来一段简单的cglib代码 代码中使用 System.setProperty(DebuggingClassWriter.DEBUG_LOCATION_PROPERTY, "D:\\classes")设置环境变量,此设置可以打印生成的字节码文件。 受影响的方法为:org.springframework ...
分类:
其他好文 时间:
2018-04-14 00:34:27
阅读次数:
386
大家都知道Spring的两大特性是IOC和AOP。 IOC负责将对象动态的注入到容器,从而达到一种需要谁就注入谁,什么时候需要就什么时候注入的效果,可谓是招之则来,挥之则去。想想都觉得爽,如果现实生活中也有这本事那就爽歪歪了,至于有多爽,各位自己脑补吧;而AOP呢,它实现的就是容器的另一大好处了,就 ...
分类:
编程语言 时间:
2018-04-04 20:53:37
阅读次数:
181
1. 导入jar包 /SpringAOPmy/lib/com.springsource.net.sf.cglib-2.2.0.jar/SpringAOPmy/lib/com.springsource.org.aopalliance-1.0.0.jar/SpringAOPmy/lib/com.spri ...
分类:
编程语言 时间:
2018-04-03 23:56:00
阅读次数:
317
一、jdk动态代理 代理目标是 接口实现类的形式 代理的目标对象: 代理: 测试: 二、CGLIB动态代理 可以对普通类实现代理,但该类不能被final修饰,方法也不能被final修饰 代理: 测试: ...
分类:
其他好文 时间:
2018-04-02 00:08:03
阅读次数:
186
1、引入依赖 2、配置web.xml 3、配置applicationContext.xml,配置全局权限 4、配置applicationContext.xml开启cglib代理,启动shiro权限注解扫描 5、在action层中创建subject,交由Security Manager进行权限校验 6 ...
分类:
其他好文 时间:
2018-04-01 01:06:36
阅读次数:
287
问题 在spring 中使用 @Transactional 、 @Cacheable 或 自定义 AOP 注解时,对象内部方法中调用该对象的其他使用aop机制的方法会失效。 在同一个类中的方法级别调用也会导致 aop 注解失效 原因 Spring AOP使用JDK动态代理和CGLib,由于没有接口的 ...
分类:
编程语言 时间:
2018-03-31 20:39:06
阅读次数:
189