如何部署同一个Spring boot web 应用到不同的环境
在现实项目当中我们往往都有不同的部署环境,例如: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 应用到不同的环境相关推荐
- Spring boot web(2):web综合开发
1 web开发 Spring boot web 开发非常简单,其中包括常用的 json输出.filters.property.log等 1.1 json接口开发 在以前的Spring 开发我么提供js ...
- Spring Boot Web
一. 概述 下面我们将进入 SpringBoot 基础阶段的学习. 在没有正式的学习 SpringBoot 之前,我们要先来了解下什么是 Spring . 我们可以打开 Spring 的官网 ( ht ...
- PART 5: INTEGRATING SPRING SECURITY WITH SPRING BOOT WEB
转自:http://justinrodenbostel.com/2014/05/30/part-5-integrating-spring-security-with-spring-boot-web/ ...
- spring boot web jar说明
spring boot web jar说明 spring-boot-starter-web: spring-boot-starter:spring核心jar,自动配置支持.日志和YAML spring ...
- okta-spring_通过Okta的单点登录保护Spring Boot Web App的安全
okta-spring "我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多 ...
- 通过Okta的单点登录保护Spring Boot Web App的安全
"我喜欢编写身份验证和授权代码." 〜从来没有Java开发人员. 厌倦了一次又一次地建立相同的登录屏幕? 尝试使用Okta API进行托管身份验证,授权和多因素身份验证. 您可以使 ...
- 带有Gradle的Spring Boot Web应用程序
1.简介 在继续使用Gradle创建演示Spring Boot Web应用程序之前,我假设我们已经准备好使用Gradle设置 . 摇篮设置指南 Gradle官方网站 2.创建演示应用程序 现在我们已经 ...
- spring boot web 开发示例
一.创建Maven工程 创建maven工程,packaging 类型选择jar. 二.配置相关maven依赖. 1,首先你需要在pom中最上方添加spring boot的父级依赖,这样当前的项目就是S ...
- Spring Boot Web应用程序中注册 Servlet 的方法实例
Spring Boot Web应用程序中注册 Servlet 的方法实例 本文实例工程源代码:https://github.com/KotlinSpringBoot/demo1_add_servlet ...
最新文章
- 如何使用Python和Tkinter构建Toy Markdown编辑器
- Python 的 __name__ 变量,到底是个什么东西?
- Discuz X2论坛数据库MyISAM转InnoDB的脚本
- 数据分析行业需要具备哪些技术 如何快速进入
- php文件代码采用UTF-8编码的BOM问题---转自CSDN---十方地藏---http://blog.csdn.net/webdesman...
- html:(27):类和ID选择器的区别和子选择器
- 4月份全球新注册39.2万辆电动汽车 榜首并非Model 3
- android+php最佳实践视频,Android和PHP开发最佳实践 PDF 第2版
- python拼图游戏编码_教你用Python自制拼图小游戏,轻松搞定熊孩子
- c语言智能小车项目的感想,智能小车实训报告
- 蓝桥杯java技巧总结
- 【CS229笔记】协方差矩阵概念快速回顾
- 用php语言说句情话,50句最美情话,套路我都懂,只是舍不得对你用
- Unity—Json1
- stem课程是什么意思
- 《网安学习之道》预告
- 「一道面试题」输入URL到渲染全面梳理中-页面渲染篇
- 征服多云管理的6种工具
- 职业建议:辞职时提前通知很重要
- Zoom:1 是什么鬼?有什么作用?