


有人说是jdk版本的问题,我现在idea是jdk19,但是xml配置文件写的1.8?查了资料说jdk9以上javax都变为了jakara,我在配置文件重新加载了还是没有实现自动注入,还提示userDao is null



有人说是jdk版本的问题,我现在idea是jdk19,但是xml配置文件写的1.8?查了资料说jdk9以上javax都变为了jakara,我在配置文件重新加载了还是没有实现自动注入,还提示userDao is null
上午好☀️☀️☀️️
本答案参考ChatGPT-3.5
关于Spring框架自动注解@Resource报错的问题,可能是以下原因导致的:
JDK版本不兼容:如果你的JDK版本过高,可能导致javax的包名被改为jakara,从而导致自动注入失败。建议确认一下你的JDK版本是否兼容当前的Spring框架版本。
代码存在错误:可能是因为代码中存在错误导致自动注入失败。请检查一下代码是否存在语法错误或逻辑错误。
下面是一些可能的解决方案:
确认JDK版本:确认一下你的JDK版本是否兼容当前的Spring框架版本。如果不兼容,建议升级或降级JDK版本。
重新加载配置文件:在你修改了配置文件之后,需要重新加载配置文件。可以使用ApplicationContext的refresh()方法来实现重新加载。
检查代码:请检查一下代码是否存在语法错误或逻辑错误。如果有,需要及时修复。
修改配置文件:如果以上方法都没有解决问题,可以尝试修改配置文件。可以尝试将@Bean注解替换为@Component、@Repository或@Service注解,以解决自动注入的问题。
修改后的代码可能如下所示:
@Repository
public class UserDaoImpl implements UserDao {
@PersistenceContext
private EntityManager entityManager;
public User getUserById(long id) {
return entityManager.find(User.class, id);
}
}
希望以上方法能够帮到你。