首页 > 解决方案 > 如何将 Spring-boot 服务注入 aspectj 类?

问题描述

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

“无法自动装配。找不到 'UserService' 类型的 bean”

这是我的课:

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 !!!!!!!!!!!!!!!!!!!!!!!!!!");

    }
}

有人能帮我吗?

标签: javaspring-bootaspect

解决方案


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

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 {
    ...
}

推荐阅读