java - 从 Spring 3.1.9 迁移到 Spring 4.2.4 时,@Autowired 不起作用。但适用于 Spring 3 和 Java7
问题描述
在运行时,我一直在用@Autowired 面对 DI。请看我在编译期间没有遇到任何问题。我添加了 4.2.4 版本的 spring-beans、spring-context、spring-core jar。相同的代码适用于 Spring 3 而不是 Spring 4。非常感谢任何建议。诸如配置检查或 Maven 依赖项之类的建议也会有所帮助。
下面的示例代码
@Component
@Qualifier(Names.NAME2_1)
public class ClassA implements InterfaceA {
@Autowired
@Qualifier(Names.NAME2)
private InterfaceB<Entity> variable1;
解决方案
Spring 官方文档说最好通过 setter 进行注入。
// Fields
//
private UserRepository userRepository;
private PasswordEncoder passwordEncoder;
// Injects are here
//
@Autowired
public void setUserRepository(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Autowired
public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
this.passwordEncoder = passwordEncoder;
}
推荐阅读
- c++ - 在 Windows 内核中阻止 RPC 调用
- react-native - 为什么我的 Bottom.Tab 中的标题没有垂直居中?
- python - 使用 Telegram-bot-python 添加回调监听器
- docker - 如何从在 dockerfile 中设置了 USER 的容器运行命令,而不会出现 encoutering 和权限错误
- javascript - 在 Google 地图中将圆圈叠加到纬度/经度和半径
- python-3.x - Python 3.9 中的进程在 ThreadPoolExecutor 中创建时以代码 1 退出
- python - 如何将数据库值设置为 for 循环中的元素?
- plot - Octave 中的 Kmeans 聚类——在一个轴上绘制多个变量与标准化值的问题,以及在旧数据上覆盖新数据的问题
- python - 根据原始列表之一中的重复项,将列表列表拆分为两个列表列表
- wordpress - 购买产品后重定向到自定义联系表