我有一个启用了自动配置的Spring boot应用程序。我的应用程序分为4个模块:核心、模型、rest和存储库。存储库模块使用Springhtml" target="_blank">数据和Hibernate。它是一个包含所有类实体和所有spring数据存储库的模块。
问题是我的应用程序找不到EntityManagerFactory,在我看来应该通过基于添加的Hibernate依赖项的自动配置来创建。
我得到的错误是:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' available
这是我的主要gradle配置:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
}
}
plugins {
id 'java'
id 'idea'
id 'org.springframework.boot' version "2.1.0.RELEASE"
id 'io.spring.dependency-management' version "1.0.6.RELEASE"
id 'net.ltgt.apt' version '0.9'
}
group 'com.wat'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile project(':core')
compile project(':model')
compile project(':rest')
compile project(':repository')
compile group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '2.1.0.RELEASE'
compile group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1'
compile "org.mapstruct:mapstruct-jdk8:1.2.0.Final"
apt "org.mapstruct:mapstruct-processor:1.2.0.Final"
testCompile group: 'junit', name: 'junit', version: '4.12'
}
allprojects {
apply plugin: "java"
repositories {
mavenCentral()
}
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.2'
compile group: 'org.springframework', name: 'spring-context', version: '5.1.1.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '2.1.0.RELEASE'
compile "org.mapstruct:mapstruct-jdk8:1.2.0.Final"
compile "org.mapstruct:mapstruct-processor:1.2.0.Final"
}
}
我的主要课程
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我的存储库模块梯度文件:
plugins {
id 'net.ltgt.apt'
}
dependencies {
compile group: 'org.springframework.data', name: 'spring-data-jpa', version: '2.1.2.RELEASE'
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.3.7.Final'
compile 'mysql:mysql-connector-java:8.0.13'
compile project(":model")
testCompile group: 'junit', name: 'junit', version: '4.12'
}
和我的存储库模块配置类:
@Configuration
@EnableJpaRepositories(basePackages = "com.wat.zpm.repository")
@EnableTransactionManagement
@EnableAutoConfiguration
public class RepositoryConfiguration {
}
据我所知,spring自动配置器会根据类路径类自动创建bean EntityManagerFactory,所以在给定注释的情况下一切都会正常工作。
更重要的是,自动配置日志显示HibernateJPA自动配置已匹配。
缺少EntityManagerFactory的类:
@Repository
public class UserRepositoryServiceImpl implements UserRepositoryService {
private final UserEntityMapper userMapper;
private final UserRepository userRepository;
public UserRepositoryServiceImpl(UserEntityMapper userMapper, UserRepository userRepository1) {
this.userMapper = userMapper;
this.userRepository = userRepository1;
}
}
用户存储库(UserRepository)是一个扩展JpaRepository的接口
我做了一项研究,没有找到我的项目可能会错过的注释或依赖项。
您在RepositoryConfiguration
类中缺少@ComponantScan
。
下面是componentscan注释的重要说明。
我正在逐步将Spring Boot引入Spring JPA项目。我的意图是首先介绍Spring Boot,而不是在一些后期的Spring数据,但我找不到任何使用Spring Boot JPA而没有Spring数据的示例(也找不到合适的启动器)。 怎么会?在没有Spring数据的情况下,将Spring Boot引入Spring JPA项目有什么好处吗?或者只有在Spring数据到位的情况下才有意义。
创建一个jest测试,如: 失败,原因是 但是,确实将 定义为节点 16,因此如下所示: 正确输出。 如何配置开玩笑以使此测试通过?显然,在开玩笑的测试运行器中发生了一些事情,无法在当前节点环境中执行,或者正在剥离特定的内置功能,只是我似乎找不到任何有关如何调试或调整的文档。 通过在“纯js”中手动编写编码或依赖于类似的东西,可以解决一些问题,但我特别感兴趣的是为什么jest执行结尾无法找到似乎存
我正在使用kustomize在一个新的k8s集群(v1.17.2)上将清单传输到kubectl。这包括CRD,但其他对象无法找到它们。例如: CRD是在我的kubectl的部分中定义的,它们显示在我向kubectl传送的输出中,我确信上次将所有内容放在一个文件中的方法是有效的。 如果我先应用CRD,然后分别应用主清单,这一切都会顺利进行。我能同时做这些吗?如果是,我做错了什么;如果没有,为什么它以
我使用springboot和maryadb数据库进行训练。当我测试数据恢复时,我在邮递员中收到这样一条消息: 。我在复制粘贴中尝试了几个教程,我总是有相同的消息。我也会把控制台中的消息。提前谢谢你的帮助。 控制器 服务 回应的 模型 应用属性 安慰
问题内容: 我想创建一个作业,但是我想在没有任何数据库持久性的情况下运行它。不幸的是,spring-batch要求以某种方式将作业周期写入数据库,从而迫使我至少提供某种带有transactionmanager和Entitymanager的数据库。 是否可以防止元数据并独立于txmanagers和数据库运行? 更新: 问题答案: 我回到我自己的问题上,因为该解决方案不再起作用。从spring-bat
我使用的是Spring Boot MVC,Spring的在数据源配置之前被调用,数据源配置加载到中。 总是首先被调用,因此从来没有为Autowed定义过bean。 我尝试了从到的所有方法。我找不到一个像样的解释。但是我需要在数据源运行WebSecurity之前为它创建一个Bean