Spring boot里@Valueと@bean実行順序問題
Spring boot里@Valueと@bean実行順序問題
文書ディレクトリ spring boot里@Valueと@bean実行順序問題 前言 の場合1:異なるファイルの下で の場合2:同じファイルの下で @Valueの代わりにEnvironmentを使用し、プロファイル を直接取得します.
前言
通常、@Beanは@Valueより先に実行されますが、@Beanと@Valueが同じファイルにないという条件があります.コントロールという先着順は次の3つのケースがあります.次のコードはkotlin言語を使用します.
ケース1:異なるファイルの下
2つのラベルが異なるファイルにある場合、@Beanは@Valueよりも先に実行されるため、@Value値が空の場合があります
ケース2:同じファイルの下
では@Valueは@Beanより先に実行します
@Valueの代わりにEnvironmentを使用し、プロファイルを直接取得します.
文書ディレクトリ
前言
通常、@Beanは@Valueより先に実行されますが、@Beanと@Valueが同じファイルにないという条件があります.コントロールという先着順は次の3つのケースがあります.次のコードはkotlin言語を使用します.
ケース1:異なるファイルの下
2つのラベルが異なるファイルにある場合、@Beanは@Valueよりも先に実行されるため、@Value値が空の場合があります
//Bean
@Configuration
class HessionRPCConfig {
@Bean
fun helloClient(){
System.out.print "globalData.RPCUrl:${globalData.RPCUrl}")
}
}
//value
class GlobalConfig {
@Value("\${globalData.RPCUrl}")
private var RPCUrl:String = "";
}
ケース2:同じファイルの下
では@Valueは@Beanより先に実行します
@Configuration
class HessionRPCConfig {
@Value("\${globalData.RPCUrl}")
private var RPCUrl:String = "";
@Bean
fun helloClient(){
System.out.print "RPCUrl:${RPCUrl}")
}
}
@Valueの代わりにEnvironmentを使用し、プロファイルを直接取得します.
import org.springframework.core.env.Environment
@Configuration
class HessionRPCConfig {
@Autowired
private lateinit var env:Environment;
@Bean
fun helloClient(){
System.out.print "RPCUrl:" + env.getProperty("globalData.RPCUrl"))
}
}