springboot中如何使用tomcat内嵌的数据源
时间: 2024-10-24 09:11:28 浏览: 22
在Spring Boot项目中,可以使用内置的Tomcat服务器并配置数据源以管理数据库连接。以下是基本步骤:
1. **添加依赖**:
首先,在你的`pom.xml`文件中添加Spring Boot Starter Web和Spring Boot Starter Data JPA(如果你打算使用JPA)的依赖。
```xml
<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>
```
2. **配置application.properties** 或 `application.yml`:
在应用配置文件中,设置数据库相关的属性,如URL、用户名、密码等。例如:
```properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword
spring.jpa.hibernate.ddl-auto=update
```
`spring.jpa.hibernate.ddl-auto` 参数用于指定数据库模式的处理策略,`update` 表示在启动时自动更新数据库结构。
3. **创建数据源bean**:
如果直接使用默认配置,Spring Boot会自动配置DataSource。但如果你想自定义数据源,可以在`@Configuration`类中创建一个`DataSource` bean,比如使用HikariCP:
```java
@Bean
public DataSource dataSource() {
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
config.setUsername("myuser");
config.setPassword("mypassword");
return new HikariDataSource(config);
}
```
4. **配置JPA**:
如果你想使用JPA进行持久化操作,还需要配置`EntityManagerFactory`和`TransactionManager`:
```java
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
vendorAdapter.setDatabasePlatform(DatabasePlatform.HSQL);
LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
factory.setDataSource(dataSource());
factory.setPackagesToScan("com.example.demo.entity"); // your entity package(s)
factory.setJpaVendorAdapter(vendorAdapter);
return factory;
}
@Bean
public PlatformTransactionManager transactionManager(DataSource dataSource) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setDataSource(dataSource);
return transactionManager;
}
```
5. **启用扫描**:
使用`@EnableJpaRepositories`注解来启用JPA仓库扫描功能,并通过`@Repository`注解标记存储层的实体类。
完成以上配置后,Spring Boot就会自动将Tomcat内嵌的Data Source与你的应用程序集成,允许你通过JPA进行数据库交互。
阅读全文