samwellwang

samwellwang

coder
twitter

Spring に関する注釈

実際には、私の日常生活では注釈をほとんど使ったことがありません。しかし、他のクラスメートが彼らの会社で多く使っていると聞いて、学びたいと思いました。注釈が本当にすごいことに気づきました。。完全に XML の設定を捨てることができます。。。私たちの会社でも注釈を使って開発できることを願っています。。

2020-05-09

実際には、私の日常生活では注釈をほとんど使ったことがありません。しかし、他のクラスメートが彼らの会社で多く使っていると聞いて、学びたいと思いました。注釈が本当にすごいことに気づきました。。完全に XML の設定を捨てることができます。。。私たちの会社でも注釈を使って開発できることを願っています。。

注釈:
@Component:コンポーネントを表します
@Autowired:指定された型の Bean をこのフィールドに注入します
@Configuration:これは設定クラスであることを示します
@ComponentScan:パッケージ全体を検索し、Component としてマークされたすべての Bean を自動的に作成し、Autowired で配線します

必要なこと:
各 Bean が @Component としてマークされ、正しく @Autowired で注入されていること;
設定クラスが @Configuration および @ComponentScan としてマークされていること;
すべての Bean が指定されたパッケージおよびサブパッケージ内にあること。

@Scope (ConfigurableBeanFactory.SCOPE_PROTOTYPE):プロトタイプ Bean を作成します
@Order:List 内の Bean の順序を指定し、Bean に Order (1)、Order (2) などのマークを付けます
@Autowired (required = false):対応する Bean が見つからない場合はスキップします
@Bean (“Second”):同じ型の Bean のエイリアスを作成します
@Primary:または優先度を指定します

@Autowired(required = false)
@Qualifier (“z”) // 注入名を「z」とする ZoneId を指定します

@Value (“classpath:/logo.txt”) Resource を注入します

@PropertySource (“app.properties”) 設定ファイルを注入します
@Value(“${app.zone}”) 設定ファイルの値を注入します
String zoneId;

“${app.zone}” は、キーが app.zone の値を読み取ることを示します。キーが存在しない場合、起動時にエラーが発生します;
“${app.zone}” は、キーが app.zone の値を読み取りますが、キーが存在しない場合はデフォルト値 Z を使用します。

JavaBean を注入してすべての設定を保持します
@Component
public class SmtpConfig {
@Value(“${smtp.host}”)
private String host;

@Value("${smtp.port:25}")
private int port;

public String getHost() {
    return host;
}

public int getPort() {
    return port;
}

}
設定 JavaBean から設定情報を読み取ります
@Component
public class MailService {
@Value(“#{smtpConfig.host}”)
private String smtpHost;

@Value("#{smtpConfig.port}")
private int smtpPort;

}

@Profile:異なる環境を示します native test production

@Conditional (OnSmtpEnvCondition.class):条件付き注入
@ConditionalOnProperty (name=”app.smtp”, havingValue=”true”) 設定ファイルに app.smtp=true が存在する場合、作成します
@ConditionalOnClass (name = “javax.mail.Transport”) 現在のクラスパスに javax.mail.Transport クラスが存在する場合、作成します

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。