我正在尝试在Spring启动应用程序1.4.1中自动配置mysql(最新版本是1.4.2,但该版本根本不工作)。我将数据源添加到application.properties:
spring.datasource.url=jdbc:mysql://localhost/transcoder
spring.datasource.username=user
spring.datasource.password=pass
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.hibernate.ddl-auto=update
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
并定义了主要的应用程序
package transcoder;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class TranscoderSpringApplication {
public static void main(String[] args) {
SpringApplication.run(TranscoderSpringApplication.class, args);
}
}
我有一个模特:
package transcoder.datasource.model;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
@Data
@Entity
@RequiredArgsConstructor
@NoArgsConstructor
public class VideoFile implements Serializable {
private static final long serialVersionUID = -5632175181967653240L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
@NonNull
@NotNull
@Column(nullable=false)
private String filename;
}
和存储库:
package transcoder.datasource.repository;
import java.util.List;
import org.springframework.data.repository.CrudRepository;
import nl.csdigitalmedia.transcoder.datasource.model.VideoFile;
public interface VideoFileRepository extends CrudRepository<VideoFile, Integer> {
List<VideoFile> findByFilename(String filename);
}
但是当我启动应用程序时,它会给出
***************************
APPLICATION FAILED TO START
***************************
Description:
Method mvcConversionService in org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport required a bean named 'entityManagerFactory' that could not be found.
Action:
Consider defining a bean named 'entityManagerFactory' in your configuration.
我用Google搜索的所有内容都说配置应该有效。
更新(pom.xml):
<name>transcoder-spring</name>
<description>Spring REST service for transcoding videos</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.restdocs</groupId>
<artifactId>spring-restdocs-mockmvc</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
在报告中:
CacheAutoConfiguration.CacheManagerJpaDependencyConfiguration did not match
- @ConditionalOnClass found required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)
- Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)
HibernateJpaAutoConfiguration did not match
- @ConditionalOnClass found required classes 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean', 'org.springframework.transaction.annotation.EnableTransactionManagement', 'javax.persistence.EntityManager' (OnClassCondition)
- HibernateEntityManager did not find classes 'org.hibernate.ejb.HibernateEntityManager', 'org.hibernate.jpa.HibernateEntityManager' (HibernateJpaAutoConfiguration.HibernateEntityManagerCondition)