为什么会用到 DataSource
?
在我读 oauth2
源码的时候,Spring
中提供了大量的测试代码,运行测试代码更方便自己理解,但是测试代码中使用的大多都是 Hsqldb
等等,我想连接我的开发库(MySql8
)进行测试。
传统的连接方式配置比较麻烦,这里使用 alibaba
的 druid
来获取 datasource
。
引入依赖
1 2 3 4 5 6
| <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.16</version> </dependency>
|
创建工具类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
public class BootDataSource { private static final String url = "jdbc:mysql://127.0.0.1:3306/oauth2_boot?charset=utf8mb4&serverTimezone=GMT%2B8&useUnicode=true&useSSL=false"; private static final String username = "maxzhao"; private static final String password = "maxzhao"; private static final String drive = "com.mysql.cj.jdbc.Driver";
public static DataSource createDataSource() throws Exception { Map<String, String> map = new HashMap<>(); map.put(DruidDataSourceFactory.PROP_DRIVERCLASSNAME, drive); map.put(DruidDataSourceFactory.PROP_URL, url); map.put(DruidDataSourceFactory.PROP_USERNAME, username); map.put(DruidDataSourceFactory.PROP_PASSWORD, password); return DruidDataSourceFactory.createDataSource(map); } }
|
引用工具类
这是在 JdbcClientDetailsServiceTests
中的一个初始化方法。
1 2 3 4 5 6 7 8 9 10 11 12 13
|
private DataSource db; @Before public void setUp()throws Exception{ db=BootDataSource.createDataSource(); jdbcTemplate=new JdbcTemplate(db); service=new JdbcClientDetailsService(db); }
|
到这里就结束了,配置很简单。
我这里使用的是 MySql8
的配置。
MySql5.x
与 MySql8
的区别要个别注意一下。
本文地址:JAVA创建DataSource
本文地址: https://github.com/maxzhao-it/blog/post/53775/