SpringBoot项⽬添加外部Jar包以及配置多数据源的完整
步骤
前⾔
最近项⽬需要和Oracle数据库进⾏交互,然后我从Maven中央仓库下载数据库驱动jar包,但怎么都下不下来,我到Oracle官⽹上⼀看,我去,居然不让⽤Maven直接下(⼤学时候⽤过Oracle,很久远的事情了0rz),没办法我还是直接下载jar包放到我的项⽬⾥⾯吧。SpringBoot项⽬引⼊外部jar包是⾮常⽅便的,包含打引⼊外部jar等操作。
我的做法如下:
⾸先在src同级⽬录建⼀个lib⽂件夹,将第三⽅jar包放到这个⽂件内,⽐如我将ojdbc6.jar 这个jar包放到这个地⽅。
接着我们需要在l⽂件⾥配置jar的maven坐标,不过这个坐标⽐较特殊,我们需要直接定位到我们上⼀步添加的⽂件,⽽不是从Maven仓库⾥⾯去下载,以ojdbc6.jar为例,配置依赖如下:
<dependency>
<groupId&acle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.2.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
</dependency>
这⾥⽐较特殊的是systemPath,常见的Maven坐标是没有这个的,这⾥⾯直接指定该jar的相对路径(相对项⽬的根⽬录),这样Maven在编译的时候就不会从中央仓库⾥⾯去下载该jar包了。但只配置这个还不⾏,还需要配置SpringBoot编译时插件属性includeSystemScope,具体如下:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
上⾯配置完毕,我们就可以直接执⾏mvn clean install进⾏打包,然后我们查看打好的jar包⾥⾯包含的jar包,会发现
ojdbc6.jar这个包已经正确被包含进去了。
由于对接的项⽬⽐较⽼,要与其数据库进⾏交互,⽽且数据库类型不⼀致,所以我们的项⽬需要⽀持多数据源(接⼝平台),这个还是⾮常好配置的,SpringBoot给我们提供了多数据源配置的⽅案,并且每个数据源对应⼀个JdbcTemplate,这样就⽅便很多,具体配置如下:
application.properties⽂件内配置多数据源信息
⾸先在application.properties或者yml⽂件内配置多数据源信息,具体配置如下:
# ds1数据源配置
spring.pe=com.alibaba.druid.pool.DruidDataSource
spring.datasource.ds1.sql.jdbc.Driver
spring.datasource.ds1.url=jdbc:mysql://localhost:3306/zz?useUnicode=true&characterEncoding=utf8
spring.datasource.ds1.username=zz
spring.datasource.ds1.password=zz
# ds2数据源配置
spring.datasource.ds2.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.ds2.url=jdbc:oracle:thin:@localhost:1521:orcl
spring.datasource.ds2.username=system
spring.datasource.ds2.password=050508
指定数据源与配置信息
上⾯我们配置好了数据源,但是已经不是SpringBoot默认的数据源配置信息了,所以我们还要指定不同的数据源实例对应哪个配置信息,配置如下:
/**
* 多数据源配置
*/
public class DataSourceConfig {
/**
* ds1数据源配置
*
* @return 配置信息
*/
(name = "ds1DataSourceProperties")
(prefix = "spring.datasource.ds1")
public DataSourceProperties ds1DataSourceProperties() {
return new DataSourceProperties();
}
/**
* ds1数据源
*
* @param dataSourceProperties 配置信息
* @return 数据源实例
*/
(name = "ds1DataSource")
public DataSource ds1DataSource(@Qualifier("ds1DataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
/**
* ds2数据源配置
*
* @return 配置信息
*/
(name = "ds2DataSourceProperties")
(prefix = "spring.datasource.ds2")
public DataSourceProperties ds2DataSourceProperties() {
return new DataSourceProperties();
}
/**
* ds2数据源
*
* @param dataSourceProperties 配置信息
* @return 数据源实例
*/
(name = "ds2DataSource")
public DataSource ds2DataSource(@Qualifier("ds2DataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
}
配置JdbcTemplate与数据源关系
配置完数据源信息,我们想直接⽤不同的JdbcTemplate来操作不同的数据库,所以我们还要创建⼏个JdbcTemplate实例,并且这些实例与不同的数据源进⾏绑定,配置信息如下:
/**
* JdbcTemplate 多数据源配置
*
* @author 明⼭
* @see DataSourceConfig
*/
public class JdbcTemplateDataSourceConfig {
/**
* ds1 JdbcTemplate 配置
mysql下载jar包*
* @param dataSource 数据源
* @return JdbcTemplate
*/
(name = "ds1JdbcTemplate")
public JdbcTemplate jdbcTemplate(@Qualifier("ds1DataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
/
**
*ds2 JdbcTemplate 配置
*
* @param dataSource 数据源
* @return JdbcTemplate
*/
(name = "ds2JdbcTemplate")
public JdbcTemplate hdwmsJdbcTemplate(@Qualifier("ds2DataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
}
使⽤JdbcTemplate
配置完后,我们可以直接在具体的类中使⽤了,使⽤⽅式如下:
("ds1JdbcTemplate")
private JdbcTemplate ds1JdbcTemplate;
("ds2JdbcTemplate")
private JdbcTemplate ds2JdbcTemplate;
总结
到此这篇关于Spring Boot项⽬添加外部Jar包以及配置多数据源的⽂章就介绍到这了,更多相关Spring Boot项⽬添加外部Jar包及配置多数据源内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。