java - 如何将Spring-boot服务注入(inject)aspectj类?

标签 java spring-boot aspect

我遇到了问题..我正在创建一个aspectj类,并且在我的类中我需要访问spring-boot服务,但是当我尝试使用@Autowired或通过构造函数注入(inject)它时,我遇到了错误:

“无法 Autowiring 。未找到“UserService”类型的 bean”

这是我的类(class):

package com.ingressolive.bar.aop.interceptor;


@Aspect
@Configuration
public class TenantAspect {
    private final Logger log = LoggerFactory.getLogger(this.getClass());


    private final Environment env;

    @Autowired
    private UserService userService;


    public TenantAspect(Environment env) {
        this.env = env;

    }

    @Before("execution(* com.ingressolive.bar.service.*.*(..))")
    public void aroundExecution(JoinPoint pjp) {
        log.debug("##################################### Entered here !!!!!!!!!!!!!!!!!!!!!!!!!!");

    }
}

有人可以帮助我吗?

最佳答案

您可以尝试使用组件而不是配置吗?我正在使用这样的方面,并且 Autowiring 工作得很好。

package com.ingressolive.bar.aop.interceptor;

@Aspect
@Component
public class TenantAspect {
   ...
}

也许您必须寻找其他配置问题,例如配置文件,未加载 xml 配置?如果您的 bean 有任何 xml 配置,请考虑使用以下模式:

package com.yourpackage.config;

@Configuration
@ImportResource(
        locations = {
                "classpath:/your-extra-config-1.xml",
                "classpath:/your-extra-config-2.xml",
        })
public class AppConfig {
    ...
}

关于java - 如何将Spring-boot服务注入(inject)aspectj类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57227496/

相关文章:

java - 遵循传统(非中介)MVC模式的监听器放置

java - 可执行 jar 中的 Spring Boot Web 应用程序 - 客户如何提供独立的 jdbc 驱动程序?

java - 在 Spring Boot 应用程序中使用 AOP 记录方法调用及其参数

java - 我该如何修复此类的 "Possible Lossy Conversion from Double to Int"?

java - 试图避免并发修改异常

java - 当我使用 java 11 时,将 java 应用程序部署到 heroku 时遇到问题

postsharp - 你如何使 Postsharp 可测试

java - 当切入点在父类(super class)上但派生类覆盖时,如何避免两次击中切入点?

java - 获取 UndeclaredThrowableException 而不是我自己的异常

java - iCal 中的 HTML 使用 iCal4j