spring jpa使用@service注解时失效提示No bean named 'countryService' is defined

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring jpa使用@service注解时失效提示No bean named 'countryService' is defined相关的知识,希望对你有一定的参考价值。

在jeesite中引入一个简单的spring data jpa 项目,运行时总是提示No bean named 'countryService' is defined,即我的@Service( 'countryService')注解失效了,求助这是什么原因?
单独测试这个简单的spring data jpa 项目时可以正常运行,就是导出为jar包放进jeesite项目中,在运行jeesite,调用spring data jpa 项目中的servlet时提示No bean named 'countryService' is defined

那就是没有扫描到文件,看看打包后里面包路径是不是spring扫描的包路径,项目运行时打包成jar的项目相当于把这个压缩包里面的东西解压到classes里面。

Spring 框架对 JPA 提供的支持主要体现在如下几个方面:

    首先它使得 JPA 配置变得更加灵活。

    JPA 规范要求,配置文件必须命名为 persistence.xml,并存在于类路径下的 META-INF 目录中。该文件通常包含了初始化 JPA 引擎所需的全部信息。Spring 提供的 LocalContainerEntityManagerFactoryBean 提供了非常灵活的配置,persistence.xml 中的信息都可以在此以属性注入的方式提供。

    其次Spring 实现了部分在 EJB 容器环境下才具有的功能。

    比如对 @PersistenceContext、@PersistenceUnit 的容器注入支持。

    第三,Spring 将 EntityManager 的创建与销毁、事务管理等代码抽取出来,并由其统一管理。

4.开发者不需要关心这些,业务方法中只剩下操作领域对象的代码,事务管理和 EntityManager 创建、销毁的代码都不再需要开发者关心了。

参考技术A 那就是没有扫描到文件,看看打包后里面包路径是不是spring扫描的包路径,项目运行时打包成jar的项目相当于把这个压缩包里面的东西解压到classes里面追问

不好意思,我接触java才一段时间,还不太懂,“看看打包后里面包路径是不是spring扫描的包路径”是怎么看

追答

项目启动spring时候,不是要加载spring的xml配置文件,就这个里面

追问

应该都是对的,, <jpa:repositories base-package="com.hotbrid.his"
主项目jeesite里面也加了com.hotbrid.his

追答

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

那看看jar包里面是不是com.hotbrid.his

追问

是的

追答

你看看是不是service注册的名字和使用的时候不一样,注意下大小写,如果不行就把jar解压出来放到jeesite里面看是否正常

还有打包的时候是否选择了 add directory entries这个选项,

本回答被提问者采纳
参考技术B 主项目里要引用jpa里的spring配置才行啊,把配置加入进去啊。追问

主项目里面已经加了配置了

参考技术C xml配置文件中 有没有做注入处理!追问

有啊,被引用的项目和主项目都做了处理

追答

贴配置文件看看!

追问

字数限制,贴不了,能QQ聊吗

以上是关于spring jpa使用@service注解时失效提示No bean named 'countryService' is defined的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot 项目中配置多数据源@Transactional注解失效问题

Spring事务注解@Transactional失效的问题

spring 声明式事务管理在真实的Service和单元测试时的回滚情况,需要注意的问题,jpa为例子

spring data jpa使用spring data jpa时,关于service层一个方法中进行删除和插入两种操作在同一个事务内处理

Dubbo与Spring的融合机制

spring aop注解失效