2017-07-06 3 views
-1

私は2つのモードのinitializeとserverで私の春のブートウェブを開発するために2日間パターンを探しています。パターンは、2つのモードで実行されるスプリングブートアプリケーションにどのように適用できますか?

プログラム引数またはyamlファイルからパラメータを取得します。

このパラメータが初期化モードで実行されている初期化プログラムである場合。初期化モードでは、いくつかの設定を行い、休止状態の後にデフォルトユーザーをdbに追加します。はい、私は実行し、それが停止する後に、この作品を終了します。

このパラメータがserverの場合、プログラムは通常spring boot webアプリケーションを実行します。

私が言ったようなパターンを知っていますか、私に何か解決策を提示できましたか?

ありがとうございました。

+0

その音を実行したり、データベースの変更/データベースのバージョン管理を制御するためのフライウェイすることができます。 –

+0

これを春のプロファイルで実現できますか? 2つのプロファイルを作成します。 1 - 開発用、2 - 生産用。開発パスプロファイルを開発として実行する場合。 – Sudhakar

答えて

1

Spring Profiles

春プロファイルは、アプリケーションの設定の一部を分離し、特定の環境ではそれが唯一利用できるようにする方法を提供します。任意の@Componentまたは@Configurationに@Profileというマークを付けると、ロード時の制限を受けることができます。

n通常のSpring方法では、spring.profiles.active環境プロパティを使用してアクティブなプロファイルを指定できます。

spring.profiles.active=dev,hsqldb 

をしたり、プログラム可能なスイッチ

--spring.profiles.active=dev,hsqldb. 

を使用して、コマンドラインで指定する:あなたは、あなたのapplication.propertiesに含めることができ、たとえば、通常のいずれかの方法でプロパティを指定することができますアプリケーションを実行する前にSpringApplication.setAdditionalProfiles(...)を呼び出すことによってアクティブなプロファイルを設定します。また、SpringのConfigurableEnvironmentインタフェースを使用してプロファイルをアクティブ化することもできます。

application.properties(またはapplication.yml)と@ConfigurationPropertiesで参照されるファイルの両方のプロファイル固有のバリアントは、ファイルがロードされるときに考慮されます。詳細は、第24.4項「Profile-specific properties」を参照してください。

application.propertiesファイルに加えて、プロファイル固有のプロパティーは、application- {profile} .propertiesという命名規則を使用して定義することもできます。環境には、アクティブなプロファイルが設定されていない場合(つまり、プロファイルが明示的にアクティブ化されていない場合、application-default.propertiesのプロパティがロードされている場合)に使用される一連のデフォルトプロファイル(デフォルトでは[デフォルト])があります。

プロファイル固有のプロパティは、標準のapplication.propertiesと同じ場所からロードされます。プロファイル固有のファイルは、パッケージ固有のファイルがパッケージ化されたjarの内側にあるかどうかにかかわらず常に非特定のファイルを上書きします。

複数のプロファイルが指定されている場合は、最終的な勝ち戦略が適用されます。たとえば、spring.profiles.activeプロパティで指定されたプロファイルは、SpringApplication APIで設定されたプロファイルの後に追加されるため、優先されます。

以下はymlファイルの例です。 2つのプロファイルを含んでいます。

#Production Configuration values 
spring: 
    profiles: prod 

    datasource: 
    url: jdbc:mysql://localhost:3306/production 

    username: userName 
    password: password 
    main: 
    banner-mode: "off" 
    jpa: 
    show-sql: false 
--- 

#Development Configuration values 
spring: 
    profiles: development 

    datasource: 
    url: jdbc:mysql://localhost:3306/development?useSSL=false 
    username: userName 
    password: password 

... Other settings can be here like creating tables, configure liquibase or hibernate auto ddl to true. 

が開発モードでプロジェクトを実行するには、あなたがより多くのLiquiBaseをのようなものを探しているように、以下の

java -jar -Dspring.profiles.active=development springbootproject.jar 
+0

まずは本当にありがとうございます。はい、分かりました。そして私が尋ねたものをどのように実装するか。例えば、開発プロファイルプログラムで実行されるプログラムが、一度実行された後、ハイバーネーションが動作する(テーブルの作成、更新など)。デフォルトの管理ユーザーを追加し、このユーザーとプログラムの停止を許可したい。このモードではWebページは配信されません。開発プロファイルの作業が終わったら、製品pfrofileを実行し、このプロファイルはWebページを提供し、Webページを開発します。これどうやってするの? – luffy

関連する問題