Java Eclipse中的动态Spring AOP?
我正在使用EclipseJunoIDE 我有一个java应用程序 在程序中,我有这些类:Team.java Player.java 现在,我允许用户向团队中添加新的球员,用户将球员数据提供给我。 每个玩家都有一个日志文件 现在,当球员加入球队时,会发生一个事件“球员加入球队” 我想做的是记录这个事件,并将发生的事情写入播放器的日志文件中 我想用SpringAOP处理这些日志记录问题。那么如何做到这一点呢 我看到的所有示例都与applicationContext.xml文件一起使用。我需要写什么Java Eclipse中的动态Spring AOP?,java,spring,aop,aspectj,spring-aop,Java,Spring,Aop,Aspectj,Spring Aop,我正在使用EclipseJunoIDE 我有一个java应用程序 在程序中,我有这些类:Team.java Player.java 现在,我允许用户向团队中添加新的球员,用户将球员数据提供给我。 每个玩家都有一个日志文件 现在,当球员加入球队时,会发生一个事件“球员加入球队” 我想做的是记录这个事件,并将发生的事情写入播放器的日志文件中 我想用SpringAOP处理这些日志记录问题。那么如何做到这一点呢 我看到的所有示例都与applicationContext.xml文件一起使用。我需要写什么
在此文件中,是否动态创建播放器 虽然一些教程让您相信Spring是用来定义值对象之间的依赖关系的,比如
House
bean依赖于Door
和Heating
bean等等,但典型的Spring应用程序并不是这样构建的。bean通常用于一次性地声明无状态的单例服务。引导后没有太多动态的东西
但是,您可以在示例中使用Spring。只需将播放器定义为原型,即可:
<bean class="Player" scope="prototype" lazy-init="true"/>
返回的bean将是功能完整的springbean,但Spring不会调用
@PreDestroy
回调。但是AOP会起作用。请澄清您的问题。我不明白你想要什么。而且我无法对您的XML文件做出明智的评论,因为我没有看到它。;-)嗨,克里加克斯!我提出了我的问题:)@eliorsh:如果播放器是动态创建的(在一些您无法控制的代码中使用new
操作符),那么您所能做的就是进行加载或编译时编织(LTW/CTW)+Spring.Tomasz,但是如果我创建自己的注释(接口)并用@retention(runtime)注释这个接口。。会有用的吗?托马斯非常感谢你!您建议使用原型是一个很好的解决方案!但我不明白你说的LTW/CTW是什么意思?它是什么?你有什么例子吗?@eliorsh:我不明白,什么注解?这对你有什么帮助?如果您无法控制的代码创建了Player
对象,则必须使用LTW/CTW来拦截该进程。@eliorsh:LTW/CTW是一种重量级技术,您可以通过修改字节码来应用AOP。如果prototype
scope适合您,那么请忘记它;-)。
applicationContext.getBean(Player.class);