Bal*_*ian 11 java hibernate maven spring-boot
我是Spring环境的新手.我正在尝试使用SpringBoot和Hibernate作为ORM和MYSQL作为数据库来开发基本的MVC应用程序.我遇到了许多麻烦来设置依赖项和配置.目前,我对以下错误感到震惊,我无法弄清楚如何克服它.
org.springframework.beans.factory.BeanCreationException: Cannot determine embedded database driver class for database type NONE. If you want an embedded database please put a supported one on the classpath.
Run Code Online (Sandbox Code Playgroud)
这是我在我的应用程序中的设置.它没有服务层和jsp页面来避免混乱
数据库:
MySql - 名为Users的数据库已经存在,它有一个名为Users的表,其中包含一个用户示例列表
User.java(型号)
@Entity
@Table(name = "Users")
public class User {
@Id
@GeneratedValue
public String id;
public String username;
public String firstname;
public String lastname;
public String password;
}
Run Code Online (Sandbox Code Playgroud)
UserRepository:
@Repository
@Table(name = "Users")
public interface UserRepository extends JpaRepository<User, String> {
}
Run Code Online (Sandbox Code Playgroud)
UserController的:
@RestController
public class UserController {
private UserRepository userRepository;
@Autowired
public UserController(UserRepository userRepository)
{
this.userRepository = userRepository;
}
@RequestMapping("user")
public void getUser(@RequestParam("id") String id) {
User user = userRepository.findOne(id);
}
}
Run Code Online (Sandbox Code Playgroud)
Application.properties:
server.port:9000
spring.datasource.url:jdbc:mysql:// localhost/Users
spring.datasource.driverClassName:com.mysql.jdbc.Driver
spring.datasource.username:root
spring.datasource.password:
的pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.3.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
<exclusions>
<exclusion>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- HIBERNATE -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.3.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.3.0.Final</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<optional>true</optional>
</dependency>
<!-- Spring ORM, works with Hibernate -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
</dependency>
<!-- MYSQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
编辑:添加主类
主类
@ComponentScan
@Configuration
@EnableAutoConfiguration
public class ApplicationStart {
public static void main(String[] args)
{
SpringApplication.run(ApplicationStart.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的应用程序的当前设置.我甚至不知道在哪里寻找错误,互联网上的教程对我的事业没有帮助.因此,非常感谢有关如何解决异常的任何帮助.
如果需要更多信息,请评论.
谢谢-
M. *_*num 14
确保您application.properties位于其中一个受支持的位置.
- 当前目录的A/config子目录.
- 当前目录
- 一个classpath/config包
- 类路径根
列表按优先级排序(列表中较高的位置覆盖较低的项目).
虽然将属性文件中的键/值对与:应该工作分开,但我建议坚持使用更常用的=分隔符.
你的pom包含一些不必要的混乱,我建议你移动.您应该只需要依赖mysql-connector-java其他所有内容(其他依赖项是通过您依赖的入门项目提供的).
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!-- MYSQL -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)
这些应该是您需要的一切,spring-boot-dependency pom.xml负责版本和传递依赖.(初级父母的祖父母).
使用@EnableAutoConfiguration注释时,带注释的类也将用于确定从哪个包开始扫描.通常,您会将此注释放在入门类中.建议将此应用程序类放在顶级包中(即.your.package.application.StarterClass)所有其他包应该是该包的子包.这样,将自动检测所有类.
如果无法做到这一点,您可能需要添加一个额外的内容@ComponentScan来指定一个基本包来开始扫描,并@EntityScan指定一个包含您的实体的包.
| 归档时间: |
|
| 查看次数: |
31424 次 |
| 最近记录: |