pom.xml複数の環境および変数を使用して取得


一般的に、開発、テスト、生産の環境はすべて異なって、繰り返し配置ファイルを修正するのは比較的に面倒で、また間違いやすくて、プロジェクトはpomにあります.xmlファイルではprofilesプロパティが使用され、複数の環境が構成されており、2つの比較的重要な問題があります.
  • 以下はpomである.xmlファイルの関連コード
  •     <profiles>
            <profile>
                <id>devid>
                <activation>
                    <activeByDefault>trueactiveByDefault>
                activation>
                <properties>      <jdbc.url>jdbc:mysql://127.0.0.1:3306/testjdbc.url>
                    <jdbc.username>testjdbc.username>
                    <jdbc.password>testjdbc.password>
                    <redis.nodes>127.0.0.1:9000redis.nodes>
                properties>
            profile>
            <profile>
                <id>said>
                <activation>
                    <activeByDefault>falseactiveByDefault>
                activation>
                <properties>
                    <jdbc.url>#{jdbc.url}jdbc.url>
                    <jdbc.username>#{jdbc.username}jdbc.username>
                    <jdbc.password>#{jdbc.password}jdbc.password>
                    <redis.nodes>#{redis.nodes}redis.nodes>
                properties>
            profile>
        profiles>
  • の導入時に環境をどのように選択しますか?
  • mavenパッケージを使用する場合、ideaで対応する環境を選択すれば
  • になります.
  • コードでこれらの変数を使用する必要がある場合、どのように取得しますか?
  • 実は多くの方法があって、私は1種の比較的に怠ける方法を提供して、Springプロファイルの中でBeanを定義して、それから関連するクラスを創立して、このようにspringフレームワークは自動的にこのクラスに注入して、コードは以下の
  • です
        id="Variables" class="com.util.Variables">
            <property name="redis_nodes" value="${redis.nodes}"/>
        
    public class Variables {
        static String redis_nodes;
    
        public static String getRedis_nodes() {
            return redis_nodes;
        }
    
        public void setRedis_nodes(String redis_nodes) {
            this.redis_nodes = redis_nodes;
        }
    }
    
  • セキュリティの観点から、オンライン環境のいくつかのパラメータはpomファイルに直接書くのではなく、配置時にdockerで置き換えられます.
  • テスト環境は、導入時にpomファイルの下の生産環境でもあり、置き換え時に使用されるテスト環境パラメータだけです.
  • このような利点は、ラインアップの安全をさらに確保することであり、これまで生産環境パラメータとテスト環境パラメータが一致しなかった場合がある
  • .