- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Spring AspectJ 加载时编织配置正在构建和加载服务器,没有任何错误,但方面没有被调用。
这是配置列表1)JDK 82)服务器 jetty
@Configuration
@ComponentScan(basePackages = {..})
@EnableSpringConfigured
@EnableLoadTimeWeaving(aspectjWeaving=AspectJWeaving.ENABLED)
@PropertySource(...)
@ImportResource(value = { "classpath:META-INF/aop.xml", ..})
class config {
...
}
aop.xml
<aspectj>
<weaver options="-Xlint:ignore -Xset:weaveJavaPackages=true -Xset:weaveJavaxPackages=true">
<include within="com.proj.*"/>
<include within="java.*"/>
<include within="javax.*"/>
<include within="org.springframework.*"/>
<include within="org.aspectj.*"/>
</weaver>
<aspects>
<aspect name="com.proj.SampleAspect"/>
</aspects>
</aspectj>
还尝试过使用 aop.xml 中的选项
options="-XnoInline -verbose -showWeaveInfo -debug -Xlint:ignore -Xset:weaveJavaPackages=true -Xset:weaveJavaxPackages=true"
方面
@Component
@Aspect
public class SampleAspect {
@Autowired
private RequestContextFilter interceptRequestContext;
@Around("@annotation(ExecuteByContext)")
public Object interceptByContext(final ProceedingJoinPoint pjp) throws Throwable {
if(SampleUtil.applyForRequest(interceptRequestContext.getRequestContext()) {
LOGGER.info(String.format("Intercept context for method %s", pjp.getSignature().getName()));
return null;
}
return pjp.proceed();
}
}
注释
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ExecuteByContext {
}
@Component
@Configurable
class TestClass implements ISomeInterface{
...
@ExecuteByContext
public void method() {
..
}
@ExecuteByContext
private void method1() {
..
}
}
Jetty 服务器使用 MAVEN_OPTS 设置启动
-javaagent:/path_to/.m2/repository/org/springframework/spring-instrument/4.2.0.RELEASE/spring-instrument-4.2.0.RELEASE.jar
我的 Maven 中有以下依赖项
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>4.2.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-instrument</artifactId>
</dependency>
SampleAspect 未被调用。我有几个用 @ExecuteByContext 注释的方法(公共(public)、私有(private)和 protected )。
最佳答案
您的目标类可能不直接位于包 com.proj
中,而是位于子包中。包含子包的语法是 ..*
,而不是简单的 .*
,即在您的 aop.xml 中,您应该有
<include within="com.proj..*"/>
等等。
关于java - Spring AspectJ loadtimeweaving 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42559468/
我在 spring xml 文件中声明entityManager bean 时看到一些使用“Simple Load Timer Weaver”的代码,如下所示:
有一个带有实体和 daos (openjpa) 的 jar 模块,以及一个使用 spring 将它们连接到 Controller 的 web 模块。 jar 模块中的测试运行良好,但是当尝试在 web
我正在尝试使用 Spring 和 AspectJ 实现加载时间编织。据我所知,我已经正确配置了所有内容,但是当我尝试运行集成测试时,我不断收到错误消息: org.springframework.bea
Spring AspectJ 加载时编织配置正在构建和加载服务器,没有任何错误,但方面没有被调用。 这是配置列表1)JDK 82)服务器 jetty @Configuration @Component
我需要使用对象列表进行访问控制。获取该列表的查询非常复杂且冗长,因此当用户通过服务器进行身份验证时,我想将其缓存在用户对象中。我决定尝试通过 UserDetailService 和 WebSecuri
我正在使用 tomcat 作为我的网络服务器,并且想使用 fetch = FetchType.lazy我所有@OneToOne 注释的注释,但 spring 恢复了我的惰性设置,给我 eclipsel
我有一个已知的问题,即 Hibernate 会加载数据,即使使用注释 fetchtype.lazy(例如此处描述:http://justonjava.blogspot.de/2010/09/lazy-
我目前正在做一个 Maven 项目,但每次我尝试部署我的 war 时,我都会遇到以下异常: ERROR [DispatcherPortlet:276] Context initialization f
我们有一个生产 Java 1.6/Tomcat 7/Spring 4 应用程序。 我们正在将它移动到 Openjdk 11。这意味着 Spring 5,我认为它也可能包括 Tomcat 9,因为我们正
似乎无法让我的 spring webapp 使用 jetty-maven 插件 我总是得到 org.springframework.beans.factory.BeanCreationExceptio
在我的 Spring Boot 1.3.3 Tomcat 8(嵌入式开发,独立生产)应用程序中,我将从 Spring 代理事务模式转移到 AspectJ 事务。 我添加了以下应用程序配置: @Enab
我正在使用注解在现有的 spring 项目上添加 Spring Cache。我使用 Couchbase 作为缓存提供程序。我想使用 AspectJ 的加载时间编织来允许私有(private)方法调用和
我正在尝试设置一个 @Configurable域对象(不由 spring 容器管理)。 我通过添加 -javaagent:path/to/spring-instrument.jar 来解决这个问题作为
我有一个启用了 LoadTimeWeaving 的 Spring Boot 项目。当我告诉 Gradle 使用 Spring Boot 1.4.3(或更高版本)而不是 1.4.2 时,应用程序无法再启
我是一名优秀的程序员,十分优秀!