如何部署同一个Spring boot web 应用到不同的环境
2016-10-25 03:24
2046 查看
在现实项目当中我们往往都有不同的部署环境,例如:dev数据库, system test 数据库 和production 数据库, 那么如何把同一个spring boot web app 部署到不同的数据库环境呢?
spring boot 提供一个profile的功能, 通过配置多个profile文件,实现同一应用切换到不同的部署环境当中。这里不在详细介绍profile的概念。有兴趣自行到官网查询。这里通过代码来说明如何配置spring boot 来实现spring JDBC tempalte切换不同的jdbc数据源
1 在pom.xml引入必须的依赖
2 创建不同的spring boot 配置文件,这三个文件分表代表dev,system,production
3 配置不同的jdbc 信息到相应的配置文件当中
4 配置spring boot
5 通过依赖注入(DI) 来调用JDBCTemplate.
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") @Autowired public 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.
相关文章推荐
- 如何在Ubuntu 14.04服务器上自动化部署Spring Boot的应用
- spring boot -- 多个spring boot 项目部署到同一个web 容器
- Spring Boot使用profile如何配置不同环境的配置文件
- Docker是如何部署一个web应用的
- 两个springboot项目如何部署在同一个服务上,two spring boot applications deploy in same server
- 如何在Ubuntu 14.04服务器上自动化部署Spring Boot的应用
- Springboot Web应用中Tomcat SSL是如何工作的
- 团队开发中,如何处理一个站点不同Web应用通用Session
- 一个Web应用(比如网站)是如何部署在多个web服务器上的?同步软件有讲到
- 利用spring boot如何快速启动一个web项目详解
- Docker学习二(部署一个可以自由获取环境变量的SpringWeb)
- SpringBoot入门学习一(如何使用IDEA创建一个SpringBoot应用)
- Spring Boot . 2 -- 用Spring Boot 创建一个Java Web 应用
- 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
- 团队开发中,如何处理一个站点不同Web应用通用Session
- spring-boot快速搭建web应用教程一-基础环境搭建
- 如何使用 Docker 部署一个基于 Play Framework 的 Scala Web 应用?
- ZH奶酪:LAMP环境中如何重新部署一个Yii2.0 web项目
- 【云星数据---mesos实战系列003】:marathon实战009--marathon部署一个springboot应用
- Asp.net中如何处理一个站点不同Web应用通用Session的问题