在现实项目当中我们往往都有不同的部署环境,例如:dev数据库, system test 数据库 和production 数据库, 那么如何把同一个spring boot web app 部署到不同的数据库环境呢?

spring boot 提供一个profile的功能, 通过配置多个profile文件,实现同一应用切换到不同的部署环境当中。这里不在详细介绍profile的概念。有兴趣自行到官网查询。这里通过代码来说明如何配置spring boot 来实现spring JDBC tempalte切换不同的jdbc数据源

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 创建不同的spring boot 配置文件,这三个文件分表代表dev,system,production

application.properties
application-sys.properties
application-prod.properties

注意 application-{profile} 对应不同的环境。 可以通过java -jar -Dspring.profile.active=sys 来切换不同的配置文件

3 配置不同的jdbc 信息到相应的配置文件当中

在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.OracleDriver

4 配置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);}}

这里我创建了一个DataBaseConfig.java 的文件来配置jdbc 连接到数据库并且返回数据源, 并且配置这个数据源来返回jdbcTemplate。 我这里使用的是传统jdbc 连接数据库并没有使用hibernate.

5 通过依赖注入(DI) 来调用JDBCTemplate.

@Repository
public class AsuDaoImpl implements IAsuDao {@Autowired@Qualifier(value="asuJDBC")private JdbcTemplate jdbcTemplate;}   

这里我创建一个dao interface, 和dao Impl来注入这个jdbcTemplate.

转载于:https://blog.51cto.com/jamesdev/1865250

如何部署同一个Spring boot web 应用到不同的环境相关推荐

  1. Spring boot web(2):web综合开发

    1 web开发 Spring boot web 开发非常简单,其中包括常用的 json输出.filters.property.log等 1.1 json接口开发 在以前的Spring 开发我么提供js ...

  2. Spring Boot Web

    一. 概述 下面我们将进入 SpringBoot 基础阶段的学习. 在没有正式的学习 SpringBoot 之前,我们要先来了解下什么是 Spring . 我们可以打开 Spring 的官网 ( ht ...

  3. PART 5: INTEGRATING SPRING SECURITY WITH SPRING BOOT WEB

    转自:http://justinrodenbostel.com/2014/05/30/part-5-integrating-spring-security-with-spring-boot-web/ ...

  4. spring boot web jar说明

    spring boot web jar说明 spring-boot-starter-web: spring-boot-starter:spring核心jar,自动配置支持.日志和YAML spring ...

  5. okta-spring_通过Okta的单点登录保护Spring Boot Web App的安全

    okta-spring "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多 ...

  6. 通过Okta的单点登录保护Spring Boot Web App的安全

    "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 您可以使 ...

  7. 带有Gradle的Spring Boot Web应用程序

    1.简介 在继续使用Gradle创建演示Spring Boot Web应用程序之前,我假设我们已经准备好使用Gradle设置 . 摇篮设置指南 Gradle官方网站 2.创建演示应用程序 现在我们已经 ...

  8. spring boot web 开发示例

    一.创建Maven工程 创建maven工程,packaging 类型选择jar. 二.配置相关maven依赖. 1,首先你需要在pom中最上方添加spring boot的父级依赖,这样当前的项目就是S ...

  9. Spring Boot Web应用程序中注册 Servlet 的方法实例

    Spring Boot Web应用程序中注册 Servlet 的方法实例 本文实例工程源代码:https://github.com/KotlinSpringBoot/demo1_add_servlet ...

最新文章

  1. 如何使用Python和Tkinter构建Toy Markdown编辑器
  2. Python 的 __name__ 变量,到底是个什么东西?
  3. Discuz X2论坛数据库MyISAM转InnoDB的脚本
  4. 数据分析行业需要具备哪些技术 如何快速进入
  5. php文件代码采用UTF-8编码的BOM问题---转自CSDN---十方地藏---http://blog.csdn.net/webdesman...
  6. html:(27):类和ID选择器的区别和子选择器
  7. 4月份全球新注册39.2万辆电动汽车 榜首并非Model 3
  8. android+php最佳实践视频,Android和PHP开发最佳实践 PDF 第2版
  9. python拼图游戏编码_教你用Python自制拼图小游戏,轻松搞定熊孩子
  10. c语言智能小车项目的感想,智能小车实训报告
  11. 蓝桥杯java技巧总结
  12. 【CS229笔记】协方差矩阵概念快速回顾
  13. 用php语言说句情话,50句最美情话,套路我都懂,只是舍不得对你用
  14. Unity—Json1
  15. stem课程是什么意思
  16. 《网安学习之道》预告
  17. 「一道面试题」输入URL到渲染全面梳理中-页面渲染篇
  18. 征服多云管理的6种工具
  19. 职业建议:辞职时提前通知很重要
  20. Zoom:1 是什么鬼?有什么作用?

热门文章

  1. Vue、React 之间如何实现代码移植?
  2. 【转载】Swift属性Property
  3. 程序员技术进阶手册(一)
  4. Mysql Hunter
  5. java第一季2.2
  6. ObjectAnimator属性动画应用demo
  7. Windows Live Writer 的昨日荣光
  8. Makefile的写法
  9. java虚拟机学习-JVM调优总结-新一代的垃圾回收算法(11)
  10. System Information for Windows