java - 如何将 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 !!!!!!!!!!!!!!!!!!!!!!!!!!");
}
}
有人能帮我吗?
解决方案
您可以尝试使用组件而不是配置吗?我正在使用这样的方面,并且自动装配工作得很好。
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 {
...
}
推荐阅读
- jenkins - 为什么在 Jenkinsfile 中执行下一阶段时再次调用前一阶段
- node.js - MongoDB - find() 是实时的吗?
- json - 延迟加载函数中的 API 调用,限制 api 响应
- terraform - 重新创建服务器时如何防止持久卷中的数据丢失
- c++ - 如何使用专用线程接收 UDP 数据?
- java - java.lang.NoClassDefFoundError:将 common-validator 从 1.4.0 升级到 1.6 时出现 Lorg apache commons 验证器例程 UrlValidator 异常
- mongodb - 提高 mongodb 对非共享键的搜索性能
- html - 将数据从html表单传递到views.py不起作用
- php - 在进行链接下拉菜单时面临滚动链接问题
- node.js - Promises 函数在 Nodejs 中的使用