为了账号安全,请及时绑定邮箱和手机立即绑定

使用带有 Spring Boot 2 的实体管理器时

使用带有 Spring Boot 2 的实体管理器时

繁华开满天机 2022-06-23 15:42:57
我正在将我的代码从 spring boot 1.5.4 迁移到 2.0.8。这样做时,实体管理器在 jboss 上部署时会引发错误:将 @Autowired 用于 EntityManager 时:No qualifying bean of type 'javax.persistence.EntityManager'并且在使用@PersistenceContext 时:No qualifying bean of type 'javax.persistence.EntityManagerFactory'我观察到的是,当我使用嵌入的 infinispan 的 uber jar 时,这个问题不会出现在 jboss 上。我不想使用 uber jar,因为它会带来其他问题。
查看完整描述

1 回答

?
森栏

TA贡献1810条经验 获得超5个赞

由于您使用的是入门模块,因此无需显式导入其他依赖项。

所以删除:


infinispan-spring4-embedded

比我看到你明确导入 Spring Security。为什么不只使用启动模块?


<dependency>

    <groupId>org.springframework.boot</groupId>

    <artifactId>spring-boot-starter-security</artifactId>

</dependency>

消除


<dependency>

    <groupId>org.springframework.security</groupId>

    <artifactId>spring-security-core</artifactId>

    <version>4.2.7.RELEASE</version>

</dependency>

<dependency>

    <groupId>org.springframework.security</groupId>

    <artifactId>spring-security-config</artifactId>

    <version>4.2.4.RELEASE</version>

</dependency>

<dependency>

    <groupId>org.springframework.security</groupId>

    <artifactId>spring-security-web</artifactId>

    <version>4.2.7.RELEASE</version>

</dependency>

关于Infinispan JCache,我发现 Spring 已经支持JSR-107缓存注释(博客文章)。


我认为根本不需要 CDI。所以继续删除


<dependency>

    <groupId>org.infinispan</groupId>

    <artifactId>infinispan-jcache</artifactId>

</dependency>

<dependency>

    <groupId>org.infinispan</groupId>

    <artifactId>infinispan-cdi-embedded</artifactId>

     <version>9.4.6.Final</version>

</dependency> 

您还可以删除显式 Hibernate 导入


<dependency>

    <groupId>org.hibernate</groupId>

    <artifactId>hibernate-core</artifactId>

    <version>5.2.17.Final</version>

    <scope>provided</scope>

</dependency>


查看完整回答
反对 回复 2022-06-23
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信