如何部署同一个弹簧引导网络应用到不同的环境

  

在现实项目当中我们往往都有不同的部署环境,例如:dev数据库,系统测试数据库和生产数据库,那么如何把同一个弹簧启动web应用程序部署到不同的数据库环境呢?


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


1在pom。xml引入必须的依赖

,& lt; dependency>   ,,,,,,,,,,,& lt; groupId> org.springframework.boot   ,,,,,,,,,,,& lt; artifactId> spring-boot-starter-jdbc   ,,,,,,,& lt;/dependency>   ,,,,,,,   ,,,,,,,& lt; dependency>   ,,,,,,,,,,,& lt; groupId> org.springframework   ,,,,,,,,,,,& lt; artifactId> spring-jdbc   ,,,,,,,& lt;/dependency>,   ,,,,,,,   ,,,,& lt; dependency>   ,,,& lt; groupId> com.oracle   ,,,& lt; artifactId> ojdbc6   ,,,,,,,& lt; version> 11.2.0.3

注:这里我使用的是oracle jdbc。


2创建不同的弹簧引导配置文件,这三个文件分表代表开发,系统、生产

application.properties   application-sys.properties   application-prod。属性

注意应用程序——{概要}对应不同的环境。可以通过java jar -Dspring.profile。积极=sys来切换不同的配置文件


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

在application.properties 文件中   spring.datasource.url=jdbc: oracle:薄:@dev01.example.com: 1521:劳逊   spring.datasource.username=devUser   spring.datasource.password=XXXXX   spring.datasource.driver-class-name=oracle.jdbc.OracleDriver      在application-sys.properties   spring.datasource.url=jdbc: oracle:薄:@sys01.example.com: 1521:劳逊   spring.datasource.username=sysUser   spring.datasource.password=XXXXX   spring.datasource.driver-class-name=oracle.jdbc.OracleDriver      在application-prod.properties   spring.datasource.url=jdbc: oracle:薄:@prodv01.example.com: 1521:劳逊   spring.datasource.username=本公司   spring.datasource.password=XXXXX   spring.datasource.driver-class-name=oracle.jdbc。OracleDriver


4配置弹簧boot 

@ configuration   public  class  DataBaseConfig  {         @ bean (name=" asuDBsource ")   @ConfigurationProperties(前缀=皊pring.datasource”)   public  DataSource  primaryDataSource (), {   ,,,return  DataSourceBuilder.create () .build ();   }            ,@ bean (name =,“asuJDBC”)   ,@ autowired   public 才能;JdbcTemplate  blcJdbcTemplate (@ qualifier (“asuDBsource”), DataSource 源),{   ,,,,,,,return  new  JdbcTemplate(源);   ,,,}      }

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


5通过依赖注入(DI)来调用jdbcTemplate只

@   public  class  AsuDaoImpl  implements  IAsuDao  {   @ autowired   @ qualifier (value=" https://www.yisu.com/zixun/asuJDBC ")   private  JdbcTemplate  jdbcTemplate;      }

这里我创建一个dao接口,和刀Impl来注入这个jdbcTemplate只

如何部署同一个弹簧引导网络应用到不同的环境