真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

springboot中如何實(shí)現(xiàn)多環(huán)境配置

springboot 中如何實(shí)現(xiàn)多環(huán)境配置,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)長期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為蔚縣企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)、做網(wǎng)站,蔚縣網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

目錄

  1. 功能描述

  2. 具體配置及細(xì)節(jié)

  3. 打包過濾

功能描述

有些時(shí)候,一個(gè)項(xiàng)目需要適配多種開發(fā)環(huán)境,如數(shù)據(jù)庫不同(MySQL、oracle、db2等)、如開發(fā)環(huán)境不同(dev、pro、test)等不同的環(huán)境需要指定不同的配置。這種情況下,我們就可以采用配置Profiles來控制。在啟動(dòng)的時(shí)候指定不同的配置組合,maven進(jìn)行build時(shí)會(huì)自動(dòng)選擇指定配置。 springboot 中如何實(shí)現(xiàn)多環(huán)境配置

具體配置及細(xì)節(jié)

  1. 首先配置在pom中配置Profiles配置


        
            mysql
            
                mysql
            
        
        
            oracle
            
                oracle
            
        
        
            db2
            
                db2
            
        
        
            dev
            
                dev
            
        
        
            prd
            
                prd
            
        
    
  1. springboot中application.yml 中可以引用pom中的變量properties屬性,引用的方式 **@變量@**

mybatis:
  configuration:
    map-underscore-to-camel-case: true
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  mapper-locations: [mybatis/**/**@spring.profiles.active@**/*Mapper.xml]
  type-aliases-package: com.*.*.domain.entity,com.*.*.system.entity
  1. 建立不同環(huán)境的配置文件,并以目錄的形式區(qū)分(當(dāng)然也可以以不同的開頭命名區(qū)分)

以下是多環(huán)境配置的目錄結(jié)構(gòu)
springboot 中如何實(shí)現(xiàn)多環(huán)境配置

以下是多數(shù)據(jù)庫的配置,在每個(gè)環(huán)境application中配置 springboot 中如何實(shí)現(xiàn)多環(huán)境配置

@Configuration
public class DatasourceConfig{
    @Resource
    Environment env;
    @Bean
    @Profile(value="mysql")
    public DataSource mysql(){
        return dataSources("mysql");
    }
    @Bean
    @Profile(value="oracle")
    public DataSource oracle(){
        return dataSources("oracle");
    }
    @Bean
    @Profile(value="db2")
    public DataSource db2(){
        return dataSources("db2");
    }
    /**
     * 獲取數(shù)據(jù)源
     * @param type (mysql,oracle,db2 ....)
     */
    public DataSource dataSources(String type) {
        String driverClassName = env.getProperty("mydatasource."+type+".driver-class-name");
        String url =  env.getProperty("mydatasource."+type+".url");
        String username =  env.getProperty("mydatasource."+type+".username");
        String password =  env.getProperty("mydatasource."+type+".password");

        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setName(type);
        druidDataSource.setDriverClassName(driverClassName);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        //TODO .....

        return druidDataSource;
    }
}

打包過濾

  1. 資源過濾 pom.xml build標(biāo)簽下


  
    src/main/resources

    true/false
    
    
  



	src/main/resources
	
		config/
		mybatis/
	


	src/main/resources/config/${package.environment}
	
		config.properties
	
 
 
	src/main/resources
	
		mybatis/**/${spring.profiles.active}/**
	
 


 
 
   org.apache.maven.plugins
   maven-jar-plugin
   
     
       com/yuyi/imap/ServletInitializer.class
     
   
 
  1. 配置profiles 多環(huán)境打包過濾

 
        
            mysql
            
                mysql
                jar
            
            
                
                    org.springframework.boot
                    spring-boot-starter-quartz
                
                
                    mysql
                    mysql-connector-java
                    5.1.43
                
            
            
                
                    
                    
                        org.apache.maven.plugins
                        maven-jar-plugin
                        
                            
                                
                                com/yuyi/imap/oracle/*
                                com/yuyi/imap/db2/*
                            
                        
                    
                
            
        

        
            oracle
            
                oracle
                war
            
            
                
                    
                    
                        org.apache.maven.plugins
                        maven-war-plugin
                        
                            
                                WEB-INF/classes/com/yuyi/imap/mysql/,
                                WEB-INF/classes/com/yuyi/imap/db2/
                            
                        
                    
                    
                    
                        org.apache.maven.plugins
                        maven-jar-plugin
                        
                            
                                
                                com/yuyi/imap/mysql/
                                
                                com/yuyi/imap/db2/*
                            
                        
                    
                
            
        
    
  1. 同一個(gè)接口,不同的實(shí)現(xiàn)可以通過重名和注解實(shí)現(xiàn) springboot 中如何實(shí)現(xiàn)多環(huán)境配置

同一個(gè)接口有兩種實(shí)現(xiàn),并且采用同一個(gè)命名,這樣在啟動(dòng)的時(shí)候會(huì)報(bào)錯(cuò)(別名重復(fù))所以需要將不用的目錄給排除掉,不編譯成class,這里采用idea springboot 中如何實(shí)現(xiàn)多環(huán)境配置
這么做只會(huì)影響springboot啟動(dòng)的時(shí)候,打包的時(shí)候不受此影響。

打包時(shí)指定profile 就可以將不同環(huán)境的資源文件和java代碼以及jar排除掉,最小打包。

看完上述內(nèi)容,你們掌握springboot 中如何實(shí)現(xiàn)多環(huán)境配置的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文名稱:springboot中如何實(shí)現(xiàn)多環(huán)境配置
當(dāng)前URL:http://weahome.cn/article/pgdjod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部