- 选择使用H2, jdbc-api
2.在使用SpringBoot构建项目时,我们通常有一些预先数据的加载。那么SpringBoot提供了一个简单的方式来实现CommandLineRunner。CommandLineRunner是一个接口,我们需要时,只需实现该接口就行。如果存在多个加载的数据,我们也可以使用@Order注解来排序。
启动类如下:
package lgp.spring.data.datasourcedemo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
@SpringBootApplication
@Slf4j
public class DatasourceDemoApplication implements CommandLineRunner{
@Autowired
private DataSource dataSource;
public static void main(String[] args) {
SpringApplication.run(DatasourceDemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
showConnection();
}
private void showConnection() throws SQLException {
log.info("dataSource:[{}]",dataSource.toString());
Connection connection = dataSource.getConnection();
log.info("connection:[{}]",connection.toString());
connection.close();
}
}
使用h2内存数据库, 项目启动后打印结果如下:
2019-06-23 21:50:04.797 INFO 15416 --- [ main] l.s.d.d.DatasourceDemoApplication : dataSource:[HikariDataSource (null)]
2019-06-23 21:50:05.100 INFO 15416 --- [ main] l.s.d.d.DatasourceDemoApplication : connection:[HikariProxyConnection@1715602761 wrapping conn0: url=jdbc:h2:mem:testdb user=SA]
actuator只暴露了health和info端点,访问其他端点需要额外配置.
在application.properties 中配置:
management.endpoints.web.exposure.include=*
访问http://localhost:8080/actuator/beans
可以查看所有的bean, 可以看到springboot对数据源dataSource, 操作相关jdbcTemplate,事务相关 transactionTemplate, platformTransaction 进行了自动配置.
网友评论