Spring Boot項目添加外部Jar包以及配置多數據源的完整步驟
前言
最近項目需要和Oracle數據庫進行交互,然后我從Maven中央倉庫下載數據庫驅動jar包,但怎么都下不下來,我到Oracle官網上一看,我去,居然不讓用Maven直接下(大學時候用過Oracle,很久遠的事情了0rz),沒辦法我還是直接下載jar包放到我的項目里面吧。SpringBoot項目引入外部jar包是非常方便的,包含打引入外部jar等操作。
我的做法如下:
首先在src同級目錄建一個lib文件夾,將第三方jar包放到這個文件內,比如我將ojdbc6.jar 這個jar包放到這個地方。
接著我們需要在pom.xml文件里配置jar的maven坐標,不過這個坐標比較特殊,我們需要直接定位到我們上一步添加的文件,而不是從Maven倉庫里面去下載,以ojdbc6.jar為例,配置依賴如下:
<dependency>
<groupId>com.oracle</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>
上面配置完畢,我們就可以直接執(zhí)行mvn clean install進行打包,然后我們查看打好的jar包里面包含的jar包,會發(fā)現ojdbc6.jar這個包已經正確被包含進去了。
由于對接的項目比較老,要與其數據庫進行交互,而且數據庫類型不一致,所以我們的項目需要支持多數據源(接口平臺),這個還是非常好配置的,SpringBoot給我們提供了多數據源配置的方案,并且每個數據源對應一個JdbcTemplate,這樣就方便很多,具體配置如下:
application.properties文件內配置多數據源信息
首先在application.properties或者yml文件內配置多數據源信息,具體配置如下:
# ds1數據源配置 spring.datasource.ds1.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.ds1.driver-class-name=com.mysql.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來操作不同的數據庫,所以我們還要創(chuàng)建幾個JdbcTemplate實例,并且這些實例與不同的數據源進行綁定,配置信息如下:
/**
* JdbcTemplate 多數據源配置
*
* @author 明山
* @see DataSourceConfig
*/
public class JdbcTemplateDataSourceConfig {
/**
* ds1 JdbcTemplate 配置
*
* @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包及配置多數據源內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何開發(fā)基于Netty的HTTP/HTTPS應用程序
HTTP/HTTPS是最常見的協議套件之一,并且隨著智能手機的成功,它的應用也日益廣泛,因為對于任何公司來說,擁有一個可以被移動設備訪問的網站幾乎是必須的。下面就來看看如何開發(fā)基于Netty的HTTP/HTTPS應用程序2021-06-06

