Spring Boot各種コメント

5458 ワード

@Request Mapping注释
注:@RestControllerと@Request Mappingの注釈はSpring MVCの注釈です.(Spring Bootの特定の部分ではありません.)
私たちのExample類で使われている最初の注釈は@RestitControllerです.これは構成型と呼ばれています.コードを読む人たちにアドバイスをします.Springに対しては、このクラスは特殊な役割を果たしています.この例では、私達のクラスはweb@Controllerですので、入ってくるweb要求を処理すると、Springがそれを聞きます.Request Mapping注釈はルート情報を提供する.Springに対して、「/」経路からのHTTP要求はすべてhome方法にマッピングされるべきだと教えています.RestitControllerはSpringに文字列で結果をレンダリングし、直接に調合者に戻るように注釈しています.
@Enbale AutoConfigrationコメント
注:@EnbaleAutoConfigration注を追加するだけでいいです.それをメイン@Configrationクラスに追加することを提案します.
二番目のクラスの注釈は@EnbaleAutoConfigrationです.この注釈はSpring Bootに対して、追加のjar依存からSpringをどのように配置したいかを推測します.spring-boot-starter-webはTomcatとSpring MVCを添加していますので、aut-configrationはウェブアプリケーションを開発していると仮定してSpringを設定します.Starter POMsとAuto-Coonfigration:aut-configrationを設計する目的は「Starter POMs」をよりよく使うことですが、この2つの概念は直接的な関連がありません.starter POMs以外のjar依存を自由に選択できます.Spring Bootは相変わらずあなたのアプリケーションを自動配置するために最善を尽くします.
@EnbleAutoConfigrationまたは@Spring Bootapprationの注釈を@Configrationクラスに追加することで、自動構成を選択することができます.
あなたが望んでいない特定の自動構成クラスを適用していると発見したら、@EnbaleAutoConfigration注释の除外属性を使ってそれらを無効にしてもいいです.
import org.springframework.boot.autoconfigure.*;
import org.springframework.boot.autoconfigure.jdbc.*;
import org.springframework.context.annotation.*;

@Configuration
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
public class MyConfiguration {
}
@Configration
Spring BootはJavaによる構成を提唱する.ただし、XMLソースを使用してSpringAppleication.runを呼び出すことができますが、我々は通常、@Configrationクラスを主要なソースとして使用することをお勧めします.メインメソッドを定義するクラスも主要@Configrationの良い候補です.すべての@Configrationを単独のクラスに入れる必要はありません.Importコメントは他の構成クラスを導入するために使用できます.また、@ComponentScan注を使って、自動的にすべてのSpringコンポーネントを収集してもいいです.@Configration類を含みます.
もしあなたがXMLベースの構成を絶対に使う必要があるなら、私たちは相変わらず@Configrationクラスから始めることを提案します.添付の@ImportResource注を使ってXMLプロファイルを読み込むことができます.
@Configrationはこのクラスを注釈して、等価とXMLの中でbeansを配置します.@Beanで表示する方法はXMLにbeanを配置することと等価です.
@ComponentScan
任意の標準的なSpringフレーム技術を使用して、beansとそれらの注入の依存性を定義することができます.簡単のために、私達はよく@ComponentScanを使ってbeansを検索して、そして@Autowiredコンストラクタを結び付けて注入します.上で提案した構造組織コードを使用すれば、@ComponentScan注釈を追加してもいいです.パラメータは必要ありません.あなたのすべてのアプリケーションコンポーネント(@Component、@Service、@Repository、@Controllerなど)は自動的にSpring Bensに登録されます.
@Spring Bootation
多くのSpring Boot開発者はいつも@Configrationを使っています.これらの注釈はこのように頻繁に使われているので(特にあなたが上記の最適な実践に従う時)、Spring Bootは便利な@SprigBootationの選択を提供します.@Spring Bootationはデフォルト属性で@Configrationを使用するのと同等です.@Enballe AutoContfigrationと@ComponentScan.
package com.example.myproject;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
@ConfigrationPropties
属性注入
@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
    private String username;
    private InetAddress remoteAddress;
    // ... getters and setters
}
@ConfigrationPropties beansを使用するために、他のどのbeanと同じ方法でそれらを注入することができます.
@Service
public class MyService {
    @Autowired
    private ConnectionSettings connection;
    //...
    @PostConstruct
    public void openConnection() {
        Server server = new Server();
        this.connection.configure(server);
    }
}
@ConfigrationPropertiesを使って一つのタイプを注釈するように、@Bean方法でも使えます.あなたがコントロールされていない第三者のコンポーネントに結合する属性が必要な場合、この方法は非常に有用です.
Evironment属性からbeanを配置するために、@ConfigrationProptiesをそのbean登録プロセスに追加します.
@Bean
@ConfigurationProperties(prefix = "foo")
public FooComponent fooComponent() {
...
}
上記のConnection Settingsの例と同様に、FooComponentには、fooをプレフィックスとする属性定義がマッピングされる.
Spring Bootは外部の構成を確認してみます.デフォルトではJSR-303を使います.簡単にあなたのために@ConfigrationPropertiesクラスにJSR-303 javax.validation制約を追加できます.
@Component
@ConfigurationProperties(prefix="connection")
public class ConnectionSettings {
@NotNull
private InetAddress remoteAddress;
// ... getters and setters
}
@EnbaleConfigrationPropties
@EnbaleConfigrationProperties注釈があなたの@Configrationに適用されると、@ConfigrationPropertiesに注釈されたbeansは自動的にEvironment属性に配置されます.
@EnbleConfigrationPropertiesの注釈で直接に簡単に属性類を並べて登録することで、@ConfigrationProperties beanの定義を迅速に登録することができます.
@Configuration
@EnableConfigurationProperties(ConnectionSettings.class)
public class MyConfiguration {
}
@Componentと@Bean
@Componentは自動スキャンと組み立てられるクラスに使われます.Componentクラスでは、メソッドやフィールドを使用する際、CGLOIBは強化されません(およびプロキシ類を使用しない:いかなる変数を使用しても、元のオブジェクトです)Spring注釈@Componentは@Serviceに相当します.@Controller、@Repository@Bernは主に方法で使用され、生成するクラスを明示します.@Configrationでこのクラスを注釈し、等価とXMLにbeansを配置する.@Beanで表示する方法はXMLにbeanを配置することと等価です.
現在のプロジェクトでは、本プロジェクトのクラスは、@Componentを使ってbeanを生成するのが一般的です.web serviceで取得したクラスを、ビームを生成する際には、@Beanとgetter方法を使ってビーンを生成します.
@Profiles
Spring Profilesは、特定の環境下でのみ、これらの構成を有効にすることができるように、アプリケーション構成を分離する方法を提供しています.@Componentまたは@Configrationはいずれも@Profileによってマークされ、そのロードのタイミングを制限することができます.
@Configuration
@Profile("production")
public class ProductionConfiguration {
// ...
}
通常のSpringでは、どの設定が有効かを指定するspring.profiles.activeのEvironment属性を使用できます.通常の任意の方法で属性を指定することができます.例えば、あなたのappication.propertiesに含めることができます.
spring.profiles.active=dev,hsqldb