溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring Boot項目如何添加外部Jar包以及配置多數(shù)據(jù)源

發(fā)布時間:2020-07-17 13:43:12 來源:億速云 閱讀:392 作者:小豬 欄目:編程語言

這篇文章主要講解了Spring Boot項目如何添加外部Jar包以及配置多數(shù)據(jù)源,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

前言

最近項目需要和Oracle數(shù)據(jù)庫進行交互,然后我從Maven中央倉庫下載數(shù)據(jù)庫驅動jar包,但怎么都下不下來,我到Oracle官網(wǎng)上一看,我去,居然不讓用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ā)現(xiàn)ojdbc6.jar這個包已經(jīng)正確被包含進去了。

由于對接的項目比較老,要與其數(shù)據(jù)庫進行交互,而且數(shù)據(jù)庫類型不一致,所以我們的項目需要支持多數(shù)據(jù)源(接口平臺),這個還是非常好配置的,SpringBoot給我們提供了多數(shù)據(jù)源配置的方案,并且每個數(shù)據(jù)源對應一個JdbcTemplate,這樣就方便很多,具體配置如下:

application.properties文件內配置多數(shù)據(jù)源信息

首先在application.properties或者yml文件內配置多數(shù)據(jù)源信息,具體配置如下:

# ds1數(shù)據(jù)源配置
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&#63;useUnicode=true&characterEncoding=utf8
spring.datasource.ds1.username=zz
spring.datasource.ds1.password=zz

# ds2數(shù)據(jù)源配置
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

指定數(shù)據(jù)源與配置信息

上面我們配置好了數(shù)據(jù)源,但是已經(jīng)不是SpringBoot默認的數(shù)據(jù)源配置信息了,所以我們還要指定不同的數(shù)據(jù)源實例對應哪個配置信息,配置如下:

/**
 * 多數(shù)據(jù)源配置
 */

public class DataSourceConfig {

 /**
  * ds1數(shù)據(jù)源配置
  *
  * @return 配置信息
  */
 
 (name = "ds1DataSourceProperties")
 (prefix = "spring.datasource.ds1")
 public DataSourceProperties ds1DataSourceProperties() {
  return new DataSourceProperties();
 }

 /**
  * ds1數(shù)據(jù)源
  *
  * @param dataSourceProperties 配置信息
  * @return 數(shù)據(jù)源實例
  */
 
 (name = "ds1DataSource")
 public DataSource ds1DataSource(@Qualifier("ds1DataSourceProperties") DataSourceProperties dataSourceProperties) {
  return dataSourceProperties.initializeDataSourceBuilder().build();
 }

 /**
  * ds2數(shù)據(jù)源配置
  *
  * @return 配置信息
  */
 
 (name = "ds2DataSourceProperties")
 (prefix = "spring.datasource.ds2")
 public DataSourceProperties ds2DataSourceProperties() {
  return new DataSourceProperties();
 }

 /**
  * ds2數(shù)據(jù)源
  *
  * @param dataSourceProperties 配置信息
  * @return 數(shù)據(jù)源實例
  */
 
 (name = "ds2DataSource")
 public DataSource ds2DataSource(@Qualifier("ds2DataSourceProperties") DataSourceProperties dataSourceProperties) {
  return dataSourceProperties.initializeDataSourceBuilder().build();
 }

}

配置JdbcTemplate與數(shù)據(jù)源關系

配置完數(shù)據(jù)源信息,我們想直接用不同的JdbcTemplate來操作不同的數(shù)據(jù)庫,所以我們還要創(chuàng)建幾個JdbcTemplate實例,并且這些實例與不同的數(shù)據(jù)源進行綁定,配置信息如下:

/**
 * JdbcTemplate 多數(shù)據(jù)源配置
 *
 * @author 明山
 * @see DataSourceConfig
 */

public class JdbcTemplateDataSourceConfig {

 /**
  * ds1 JdbcTemplate 配置
  *
  * @param dataSource 數(shù)據(jù)源
  * @return JdbcTemplate
  */
 
 (name = "ds1JdbcTemplate")
 public JdbcTemplate jdbcTemplate(@Qualifier("ds1DataSource") DataSource dataSource) {
  return new JdbcTemplate(dataSource);
 }

 /**
  *ds2 JdbcTemplate 配置
  *
  * @param dataSource 數(shù)據(jù)源
  * @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包以及配置多數(shù)據(jù)源有進一步的了解,如果還想學習更多內容,歡迎關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI