springbootは、春はこの単純かつ迅速な方法のノートが自然ではないになることをしながら、迅速、Spring構成ファイルの多くは、核となるアイデアが合意された設定よりも大きいプロジェクトを簡素化し、その最大の特徴は、簡単かつ迅速であるjavaWebプロジェクトを構築するためのフレームワークを開発しています二つのオプションはもちろん、@Controller @RequestMappingのために、これはもはやあまりにも一般的な例である、いくつかの一般的なノートにspringboot以下に要約されていないにも継続的に新しいコメントを追加するように更新されます。
(A)クラスのパラメータ
RequestParam属性値= "名前" @ 1、必要=真/偽はdefaultValue = XXX
公共 ボイドは言う(@RequestParam( "名前")文字列名、RequestParam( "PWD" @ )文字列のパスワード){ }
安らかに基づくPathVariableと@RequestParam同様のスタイル@ 2
@RequestMapping( "/デモ/ {ID} / {名前}" ) 公共 ボイド言う(@PathVariable( "ID")文字列ID、PathVariable @( "名前" )文字列NAME1){ }
RequestBody @ 3.フォーム名とエンティティクラス名のプロパティ名の要件に合致エンティティクラスのプロパティにバインドされたフォームのname属性のフロントエンド。
公共 ボイドは言う(@RequestBodyユーザーユーザー){ }
リクエストから取得したRequstAttribute値@ 4は、インターセプタ@ModelAttributeまたは予め記憶された属性値のデフォルト値に真のは、何の値は、必要な属性をfalseに設定することはできませんServletRequestBindingExceptionをスローします。
(B)。注釈走査クラス
@コンポーネント@Controller @Service @Repository @Component 3つのサブクラス1.が、パケットがないパケット用のパッケージを指定@ComponentScan走査をスキャンするために利用可能である、走査IOCコンテナに追加され、クラス定義
ビーン@ 2.に対してより柔軟ビーン@Component @、Beanのインスタンスを生成し、この方法は、その管理のクラスを生成する春に言っ
XMLに対応した春の3 @の設定<豆>
XMLは+ @豆は<豆>に相当します
パッケージcom.dxz.demo.configuration; インポートorg.springframework.context.annotation.Bean; インポートorg.springframework.context.annotation.Configuration; インポートorg.springframework.context.annotation.Scope; @Configuration パブリック クラスTestConfiguration { 公共TestConfiguration (){ System.out.printlnは( "...初期化コンテナTestConfigurationを開始" ); } // @Beanアノテーション登録豆、および初期化および破壊方法を指定することができる // @Bean(名= "testBean"にinitMethodを= "スタート"およびdestroyMethodを="クリーンアップ") @Bean @Scope( "プロトタイプ」) 公衆TestBean testBean(){ 戻り 新しいTestBeanを(); } }
TestBean
パッケージcom.dxz.demo.configuration。 パブリック クラスTestBean { プライベート文字列のユーザ名。 プライベート文字列のURL。 プライベート文字列のパスワード。 公共 のボイドのsayHello(){ System.out.printlnは( "TestBeanのsayHello ..." ); } パブリック文字列のtoString(){ リターン "名:" + この .username + "URL:" + 本た.url + "パスワード:" + このみましょう。パスワード。 } 公共 ボイド開始(){ System.out.printlnは( "TestBean初始化..."); } 公共 ボイドクリーンアップ(){ System.out.printlnは( "TestBean销毁..." )。 } }
テストカテゴリ
コードのコピー パッケージcom.dxz.demo.configurationと、 インポートorg.springframework.context.ApplicationContext; インポートorg.springframework.context.annotation.AnnotationConfigApplicationContext、 パブリック クラスいるTestMain { 公共 静的 ボイドメイン(文字列[]引数){ // @Configuration注釈ロード春のコンテナは、ClassPathXmlApplicationContextはAnnotationConfigApplicationContextに置き換え ApplicationContextのコンテキスト= 新しい新 AnnotationConfigApplicationContext(。TestConfiguration クラス); // ロードスプリング-context.xmlファイルの場合: // ApplicationContextのコンテキスト新=新 // ClassPathXmlApplicationContext( "春-のcontext.xml"); // 获取ビーン TestBean TB =(TestBean)context.getBean( "testBean" )。 tb.sayHello(); } }
結果:
@Componetも使用@Configrationクラスを追加することができますTestBean
導入された(C)リソース・クラス
1. @value
@value(「$ {book.nameは}」)application.propertiesを(またあなたの他のプロファイル可能)book.name =老人と海の取得しました
@value(「#{name}は」)エンティティクラス帳のname属性を取得します。
リソース和@Autowired @ 2
@Autowiredの春の注釈はデフォルトの注釈でByTypeです。ビーンは、リソースがアノテーションである@ name属性で指定されていないときには、春にもこのコメントをサポートし、そこに名前とタイプは、属性、注射剤として使用されています
クラスは複数の実装、@リソース(名=「XXXある場合 」) または@Qualifier(
を必要としていると実装クラス上のニーズと@Primary @Autowired(男と女の人を達成するために、男性または女性を実現)XML設定ファイルをロードする:ImportResource( "xxxxx.xmlクラスパス")@ 3。
4. ConfigurationProperties @
時には必要な設定情報ファイルパッケージのエンティティクラス、これは呼び出すことは非常に簡単になります、
プロファイル:
connection.username = 管理者 connection.password = kyjufskifas2jsfs connection.remoteAddress = 192.168.1.1
エンティティクラス:
@Component @ConfigurationProperties(接頭辞 =「接続」) @Data // ロンボクロンボクコメントはIDEAツールが生成ロンボク効果自動的にセットされますメソッドの実装依存に導入する必要がある パブリック クラスConnectionSettings { プライベート文字列名; プライベート[リモートの文字列; プライベート文字列のパスワードを; }
場合に使用します
@RestController @RequestMapping( "/タスク" ) パブリック クラスTaskController { @Autowired ConnectionSettings CONN。 @RequestMapping(値 = { "/"、 "" }) パブリック文字列hellTask(){ 文字列のuserName = conn.getUsername()。 戻る「ハロータスクを!!」; } }
もちろん、あなたも直接@ConfigurationPropertiesを使用することができますし、クラスConnectionSettingsに注釈を追加する必要はありませんように一緒に入れ@Bean
@Bean @ConfigurationProperties(接頭辞 = "接続" ) パブリックConnectionSettings connectionSettings(){ 戻り 新しい)(ConnectionSettingsします。 }
(D)トランザクションクラス
トランザクション@ 1。