application.ymlカスタム設定した後、あなたはまた、設定を読み込むために、ビジネス@value注釈コードを作るために使用することができる設定を読み込むために環境を使用することができます。
プロパティより場合は、プロパティマップオブジェクトを定義することができます。
開発環境:のIntelliJ IDEA 2019年2月2日
春ブートバージョン:2.1.8
春のブートプロジェクトのデモのための新しい名前を作成します。
まず、使用@valueコメント
1、application.yml構成
JDBC: URL:localhostを:3306
2、クラスValueProp.csを追加
値@値application.yml構成に対応する、登録クラスValuePropスプリング容器に注釈を@Component。
パッケージcom.example.demo。 輸入org.springframework.beans.factory.annotation.Value。 輸入org.springframework.stereotype.Component。 @Component パブリック クラスValueProp { @value( "$ {jdbc.url}" ) プライベート文字列jdbcUrlと。 パブリック文字列getJdbcUrl(){ 戻りjdbcUrlとします。 } }
3、スタートアップDemoApplication.csを変更するためのクラスコード
パッケージcom.example.demo。 輸入org.springframework.beans.factory.annotation.Autowired; 輸入org.springframework.boot.SpringApplication。 輸入org.springframework.boot.autoconfigure.SpringBootApplication。 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.bind.annotation.RestController。 @SpringBootApplication @RestController パブリック クラスDemoApplication { 公共 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(DemoApplication。クラス、引数)。 } @Autowired プライベートValueProp valueProp。 @RequestMapping( "/" ) パブリック文字列インデックス(){ 戻り)(valueProp.getJdbcUrlします。 } }
プログラム構造。
訪問ます。http:// localhost:8080 /
ページが表示さ:localhostを:3306
第二に、定義プロパティマップオブジェクト
上記の例であれば、複数の属性内部次のJDBC application.yml、直接@value原因コードの冗長性を使用します。
あなたは、構成プロパティのプレフィックスJDBCを指定するには、クラスマップを作成することができます。
1、application.yml構成
注: - フォーマット役割は以下が必要とされる文字列のコレクションです。
JDBC: URL:localhostを:3306 ユーザー:ルート パスワード123456 のdb: 名前:mysqlの バージョン:1.0 役割: -マネージャー -クライアント
2、新しい属性マッピングクラスJdbcProp.cs
クラス構成された接頭辞「JDBC」の注釈@ConfigurationProperties宣言を使用してください。
パッケージcom.example.demo。 輸入org.springframework.boot.context.properties.ConfigurationProperties。 輸入はjava.util.List; @ConfigurationProperties(接頭辞 = "JDBC" ) パブリック クラスJdbcProp { プライベート文字列のURL。 プライベート文字列のユーザー。 プライベート文字列のパスワード。 プライベートデータベースdb; 公共の文字列のgetURL(){ リターンURL; } 公共 ボイドてsetURL(文字列のURL){ このた.url = URL。 } パブリックストリングのgetUser(){ 戻りユーザ。 } 公共 ボイドSETUSER(文字列ユーザ){ この .user = ユーザー。 } パブリック文字列getPasswordに(){ 戻りパスワード。 } 公共 ボイドするsetPassword(文字列のパスワード){ このみましょう。パスワード= パスワード。 } 公共データベースgetDb(){ 戻りDB。 } 公共 ボイドsetDb(データベースDB){ この .DB = デシベル。 } 公共の 静的 クラスのデータベース{ プライベート文字列名; プライベート文字列のバージョン。 プライベートリスト<文字列> の役割。 パブリック文字列のgetName(){ 戻り名。 } 公共 ボイドのsetName(文字列名){ この .nameの= 名前。 } パブリック文字列GETVERSION(){ 戻りバージョン。 } 公共 ボイドsetVersion(文字列バージョン){ この .version = バージョン。 } パブリックリストの<string> getRoles(){ 返す役割を、 } 公共 ボイド setRoles(リストの<string> ロール){ この .rolesの=の役割。 } } }
3、新しいコンフィギュレーション・クラスJdbcConfig.cs
目的は、プロパティマップの意識Springコンテナは、このようなカスタムオブジェクトさせることです。
パッケージcom.example.demo。 輸入org.springframework.boot.context.properties.EnableConfigurationProperties。 輸入org.springframework.context.annotation.Configuration。 @Configuration @EnableConfigurationProperties(値 = JdbcProp。クラス) パブリック クラスJdbcConfig { }
4、起動クラスコードDemoApplication.csを変更します
パッケージcom.example.demo。 輸入org.springframework.beans.factory.annotation.Autowired; 輸入org.springframework.boot.SpringApplication。 輸入org.springframework.boot.autoconfigure.SpringBootApplication。 輸入org.springframework.http.MediaType。 輸入org.springframework.web.bind.annotation.RequestMapping。 輸入org.springframework.web.bind.annotation.RestController。 @SpringBootApplication @RestController パブリック クラスDemoApplication { 公共 静的 ボイドメイン(文字列[]引数){ SpringApplication.run(DemoApplication。クラス、引数)。 } @Autowired プライベートJdbcProp jdbcPropは、 @RequestMapping(値 = "/"、=生成MediaType.APPLICATION_JSON_VALUE) パブリック(JdbcProp指数){ 返すjdbcPropと、 } }
プログラム構造。
訪問します。http:// localhost:8080 /
ページが表示されます。
{ "URL": "localhostを:3306"、 "ユーザー": "ルート"、 "パスワード": "123456"、 "DB":{ "名": "mysqlの"、 "バージョン": "1.0"、 "役割":[" 管理者」、 "クライアント"]}}