如果我的实例是非spring管理的, 那如何实现aop:aspectj 动态织入 ...

OK_boom 2018-05-16 04:17:55
如果我在spring配置后面加入类似如下的配置,那么就可以在SqlLogger这样的Aspect织入工具里面对spring容器已加载的类进行扫描织入.
<aop:aspectj-autoproxy proxy-target-class="true"/>
<bean id="sqlLogger" class="com.freestyle.common.hibernate.dao.support.SqlLogger"></bean>



那么, 如果我想对一个用new XXX()建立的类实例进行织入 , 该怎么实现呢?? 求各路大神...
...全文
1408 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
OK_boom 2018-05-17
  • 打赏
  • 举报
回复
引用 4 楼 maradona1984 的回复:
[quote=引用 3 楼 rocklee 的回复:] [quote=引用 1 楼 maradona1984 的回复:] 不能,不要纠结了,你得清楚技术的实现细节,不然就不会有如此的奇思妙想 一般提出这种需求的人,都是无法控制这个对象的创建,甚至类都在jar包里,如果能自己控制代码,那为何不修改代码不更简单? 如果是我说的那种,你只能考虑在类加载的时候修改字节码 可以考虑这个方案是否适合你的需求 https://blog.csdn.net/hhlhailang/article/details/1612913
其实我就是想将NamedParameterJdbcTemplate这个类的日志输出是带上参数值而已, 有什么好的办法?[/quote] 如果这个NamedParameterJdbcTemplate的对象是你自己创建的,那很简单,做个代理就行了(百度代理模式),或者用xml配置bean的方式将其当作spring的bean,那就可以用aop了,如果这个对象不由你创建,那就回答下面问题 日志加参数?sql? 数据源是什么? [/quote] 老哥, 昨晚用Spring的CGLIB做的代理实现了, https://blog.csdn.net/rocklee/article/details/80346091 但感觉没有spring对aspect织入处理的完美,感觉spring能对要处理的实例内部进行扫描,与截点表达式相符的就会织入,而不是代理那样只拦截实例的方法执行那么肤浅,如果动态运行时能用上spring这个功能就太完美了。
maradona1984 2018-05-17
  • 打赏
  • 举报
回复
引用 3 楼 rocklee 的回复:
[quote=引用 1 楼 maradona1984 的回复:] 不能,不要纠结了,你得清楚技术的实现细节,不然就不会有如此的奇思妙想 一般提出这种需求的人,都是无法控制这个对象的创建,甚至类都在jar包里,如果能自己控制代码,那为何不修改代码不更简单? 如果是我说的那种,你只能考虑在类加载的时候修改字节码 可以考虑这个方案是否适合你的需求 https://blog.csdn.net/hhlhailang/article/details/1612913
其实我就是想将NamedParameterJdbcTemplate这个类的日志输出是带上参数值而已, 有什么好的办法?[/quote] 如果这个NamedParameterJdbcTemplate的对象是你自己创建的,那很简单,做个代理就行了(百度代理模式),或者用xml配置bean的方式将其当作spring的bean,那就可以用aop了,如果这个对象不由你创建,那就回答下面问题 日志加参数?sql? 数据源是什么?
OK_boom 2018-05-16
  • 打赏
  • 举报
回复
引用 1 楼 maradona1984 的回复:
不能,不要纠结了,你得清楚技术的实现细节,不然就不会有如此的奇思妙想 一般提出这种需求的人,都是无法控制这个对象的创建,甚至类都在jar包里,如果能自己控制代码,那为何不修改代码不更简单? 如果是我说的那种,你只能考虑在类加载的时候修改字节码 可以考虑这个方案是否适合你的需求 https://blog.csdn.net/hhlhailang/article/details/1612913
其实我就是想将NamedParameterJdbcTemplate这个类的日志输出是带上参数值而已, 有什么好的办法?
OK_boom 2018-05-16
  • 打赏
  • 举报
回复
引用 1 楼 maradona1984 的回复:
不能,不要纠结了,你得清楚技术的实现细节,不然就不会有如此的奇思妙想 一般提出这种需求的人,都是无法控制这个对象的创建,甚至类都在jar包里,如果能自己控制代码,那为何不修改代码不更简单? 如果是我说的那种,你只能考虑在类加载的时候修改字节码 可以考虑这个方案是否适合你的需求 https://blog.csdn.net/hhlhailang/article/details/1612913
查了一下资料, 好像是spring主动调用aop工具对它管理的实例进行织入... 但既然它用到了Aspect, 自然有调用相关的织入动作... 看了李刚的书, 不是很懂, google也没怎么讲.
maradona1984 2018-05-16
  • 打赏
  • 举报
回复
不能,不要纠结了,你得清楚技术的实现细节,不然就不会有如此的奇思妙想 一般提出这种需求的人,都是无法控制这个对象的创建,甚至类都在jar包里,如果能自己控制代码,那为何不修改代码不更简单? 如果是我说的那种,你只能考虑在类加载的时候修改字节码 可以考虑这个方案是否适合你的需求 https://blog.csdn.net/hhlhailang/article/details/1612913

50,336

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧