05 如何配置单数据源
2019-02-27 本文已影响0人
yust5273
1.引入对应数据库驱动 --H2
2.引入JDBC依赖--spring-boot-starter-jdbc
3.获取DataSource Bean,打印信息
4.也可以通过/acturator/beans 查看Bean
![](https://img.haomeiwen.com/i15956200/99ad14d5fec41450.png)
5.编写代码如下:
@Slf4j
@SpringBootApplication
public class DemoApplication implements CommandLineRunner {
@Autowired
private DataSource dataSource;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
public void run(String... args) throws Exception {
log.info("init-----------------------");
log.info("dataSource={}",dataSource.toString());
if (Objects.nonNull(dataSource)){
Connection connection = dataSource.getConnection();
log.info("connection={}",connection.toString());
connection.close();
}
}
}
pom.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yust</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
<version>1.4.198</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
6.运行
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.1.1.RELEASE)
2019-02-27 13:32:14.021 INFO 6604 --- [ main] com.yust.demo.DemoApplication : Starting DemoApplication on ZB-PF11056J with PID 6604 (C:\Users\yusongtao\Desktop\demo\target\classes started by yusongtao in C:\Users\yusongtao\Desktop\demo)
2019-02-27 13:32:14.025 INFO 6604 --- [ main] com.yust.demo.DemoApplication : No active profile set, falling back to default profiles: default
2019-02-27 13:32:15.457 INFO 6604 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$51d0a371] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2019-02-27 13:32:15.793 INFO 6604 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2019-02-27 13:32:15.822 INFO 6604 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2019-02-27 13:32:15.822 INFO 6604 --- [ main] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/9.0.13
2019-02-27 13:32:15.829 INFO 6604 --- [ main] o.a.catalina.core.AprLifecycleListener : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [D:\Java\jdk1.8.0_131\bin;C:\windows\Sun\Java\bin;C:\windows\system32;C:\windows;D:\apache-maven-3.5.0-bin\apache-maven-3.5.0\bin;D:\Java\jdk1.8.0_131\bin;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\Lenovo\Touch Fingerprint Software\;C:\Program Files (x86)\Intel\UCRT\;C:\Program Files\Intel\UCRT\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;d:\Git\cmd;C:\Program Files\nodejs\;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users\yusongtao\AppData\Roaming\npm;.]
2019-02-27 13:32:15.979 INFO 6604 --- [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2019-02-27 13:32:15.979 INFO 6604 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1895 ms
2019-02-27 13:32:16.640 INFO 6604 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'
2019-02-27 13:32:16.986 INFO 6604 --- [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 2 endpoint(s) beneath base path '/actuator'
2019-02-27 13:32:17.058 INFO 6604 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
2019-02-27 13:32:17.062 INFO 6604 --- [ main] com.yust.demo.DemoApplication : Started DemoApplication in 3.515 seconds (JVM running for 4.37)
2019-02-27 13:32:17.074 INFO 6604 --- [ main] com.yust.demo.DemoApplication : init-----------------------
2019-02-27 13:32:17.074 INFO 6604 --- [ main] com.yust.demo.DemoApplication : dataSource=HikariDataSource (null)
2019-02-27 13:32:17.075 INFO 6604 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...
2019-02-27 13:32:17.184 INFO 6604 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.
2019-02-27 13:32:17.189 INFO 6604 --- [ main] com.yust.demo.DemoApplication : connection=HikariProxyConnection@11526042 wrapping conn0: url=jdbc:h2:mem:testdb user=SA
2019-02-27 13:32:17.474 INFO 6604 --- [on(4)-127.0.0.1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2019-02-27 13:32:17.474 INFO 6604 --- [on(4)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2019-02-27 13:32:17.485 INFO 6604 --- [on(4)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Completed initialization in 11 ms
7.这个时候我们的h2数据库就连接好了。
通过日志也可以看到,数据源为HikariDataSource 。
8.控制台访问该bean
可以找到spring环境中所有的bean,包括刚才的DataSource的bean.等
http://localhost:8080/actuator/beans
连接失效的解决方法:https://blog.csdn.net/sayyy/article/details/80843805