甜瓜哥哥 2024-04-06 01:37 采纳率: 25%
浏览 42
已结题

Spring框架自动注解resource报错

img

img

img

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

  • 写回答

7条回答 默认 最新

  • 檀越@新空间 2024-04-06 01:37
    关注

    上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    关于Spring框架自动注解@Resource报错的问题,可能是以下原因导致的:

    1. JDK版本不兼容:如果你的JDK版本过高,可能导致javax的包名被改为jakara,从而导致自动注入失败。建议确认一下你的JDK版本是否兼容当前的Spring框架版本。

    2. 代码存在错误:可能是因为代码中存在错误导致自动注入失败。请检查一下代码是否存在语法错误或逻辑错误。

    下面是一些可能的解决方案:

    1. 确认JDK版本:确认一下你的JDK版本是否兼容当前的Spring框架版本。如果不兼容,建议升级或降级JDK版本。

    2. 重新加载配置文件:在你修改了配置文件之后,需要重新加载配置文件。可以使用ApplicationContext的refresh()方法来实现重新加载。

    3. 检查代码:请检查一下代码是否存在语法错误或逻辑错误。如果有,需要及时修复。

    4. 修改配置文件:如果以上方法都没有解决问题,可以尝试修改配置文件。可以尝试将@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);
        }
    }
    

    希望以上方法能够帮到你。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 4月14日
  • 已采纳回答 4月6日
  • 修改了问题 4月6日
  • 创建了问题 4月6日