首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我们从RAD部署应用程序时,Spring factory-method="aspectOf“不工作

当我们从RAD部署应用程序时,Spring factory-method="aspectOf“不工作
EN

Stack Overflow用户
提问于 2015-03-12 22:30:23
回答 1查看 2.7K关注 0票数 1

我们使用的是带有Spring支持的AspectJ。我已经在我的ApplicationContext.xml中声明了我的方面,如下所示。

代码语言:javascript
复制
<context:annotation-config />
<context:spring-configured />
<context:component-scan base-package="com,com.util">
    <context:exclude-filter type="regex" expression="com.xyz*.*" />
</context:component-scan>
<bean id="xyz" class="com.util.XyzAspect" factory-method="aspectOf"/>

Aspect类:

代码语言:javascript
复制
@Configurable
@Aspect
public class XyzAspect {

 @Autowired
 private XyzUtil xyzUtil;

 @After("showPoint() ")
 public void logUser( JoinPoint pjp ) throws Throwable {
   Sysout("Some log Statement");
 }
}

当我从命令提示符执行Maven构建并在Websphere Application server (7.0)中手动部署EAR时,它工作得很好。但是当我从RAD7.5(Rational Application Developer)管理控制台进行部署时,它给出了'No matching factory method found: factory method 'aspectOf'‘问题。

有没有人能完全解决这个问题。我还想从RAD运行应用程序。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2015-03-25 18:14:24

AspectJ将aspectOf方法编织到您的XyzAspect中。我相信您使用的是编译时编织,因此Maven生成的EAR已经为XyzAspect类正确地“修补”了字节码,因此它部署得很好。如果你用IDE组装项目,类的字节码就会缺少某些东西(它是Java源代码的确切表示,而且是“不完整的”)。在编织过程中,AspectJ会将您的方面“转换”为单例,即添加静态变量来保存唯一的实例,并添加一个方法(aspectOf)来获取唯一的实例。请查看this thread以获取更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29012515

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档