javascript
如何部署同一个Spring boot web 应用到不同的环境
在現(xiàn)實(shí)項(xiàng)目當(dāng)中我們往往都有不同的部署環(huán)境,例如:dev數(shù)據(jù)庫, system test 數(shù)據(jù)庫 和production 數(shù)據(jù)庫, 那么如何把同一個(gè)spring boot web app 部署到不同的數(shù)據(jù)庫環(huán)境呢?
spring boot 提供一個(gè)profile的功能, 通過配置多個(gè)profile文件,實(shí)現(xiàn)同一應(yīng)用切換到不同的部署環(huán)境當(dāng)中。這里不在詳細(xì)介紹profile的概念。有興趣自行到官網(wǎng)查詢。這里通過代碼來說明如何配置spring boot 來實(shí)現(xiàn)spring JDBC tempalte切換不同的jdbc數(shù)據(jù)源
1 在pom.xml引入必須的依賴
?<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency>?<dependency><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>11.2.0.3</version>注:這里我使用的是oracle jdbc。
2 創(chuàng)建不同的spring boot 配置文件,這三個(gè)文件分表代表dev,system,production
application.properties application-sys.properties application-prod.properties注意 application-{profile} 對應(yīng)不同的環(huán)境。 可以通過java -jar -Dspring.profile.active=sys 來切換不同的配置文件
3 配置不同的jdbc 信息到相應(yīng)的配置文件當(dāng)中
在application.properties?文件中 spring.datasource.url=jdbc:oracle:thin:@dev01.example.com:1521:lausoned spring.datasource.username=devUser spring.datasource.password=XXXXX spring.datasource.driver-class-name=oracle.jdbc.OracleDriver在application-sys.properties spring.datasource.url=jdbc:oracle:thin:@sys01.example.com:1521:lausoned spring.datasource.username=sysUser spring.datasource.password=XXXXX spring.datasource.driver-class-name=oracle.jdbc.OracleDriver在application-prod.properties spring.datasource.url=jdbc:oracle:thin:@prodv01.example.com:1521:lausoned spring.datasource.username=prodUser spring.datasource.password=XXXXX spring.datasource.driver-class-name=oracle.jdbc.OracleDriver4 配置spring boot?
@Configuration public?class?DataBaseConfig?{@Bean(name="asuDBsource")@ConfigurationProperties(prefix="spring.datasource")public?DataSource?primaryDataSource()?{return?DataSourceBuilder.create().build();}@Bean(name?=?"asuJDBC")@Autowiredpublic?JdbcTemplate?blcJdbcTemplate(@Qualifier("asuDBsource")?DataSource?source)?{return?new?JdbcTemplate(source);}}這里我創(chuàng)建了一個(gè)DataBaseConfig.java 的文件來配置jdbc 連接到數(shù)據(jù)庫并且返回?cái)?shù)據(jù)源, 并且配置這個(gè)數(shù)據(jù)源來返回jdbcTemplate。 我這里使用的是傳統(tǒng)jdbc 連接數(shù)據(jù)庫并沒有使用hibernate.?
5 通過依賴注入(DI) 來調(diào)用JDBCTemplate.?
@Repository public?class?AsuDaoImpl?implements?IAsuDao?{@Autowired@Qualifier(value="asuJDBC")private?JdbcTemplate?jdbcTemplate;}這里我創(chuàng)建一個(gè)dao interface, 和dao Impl來注入這個(gè)jdbcTemplate.?
轉(zhuǎn)載于:https://blog.51cto.com/jamesdev/1865250
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的如何部署同一个Spring boot web 应用到不同的环境的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vim学习日志(5):vim下wimrc
- 下一篇: 跨域解决方案大全