このメソッドをプロパティの外部化に使用しません。まず、あなたの方法の提案をしてみて、私が使っているものをあなたに見せてあげます。
あなたのメソッドの提案は、file:/ asの代わりにfile:///を使用することです。私は、コロンの後に3つのスラッシュを渡さないとプロパティを認識しませんでした。
あなたのサンプルプロジェクトavailable here with instructionsを作成しました。
ここで私が使用する方法です。
プロファイルごとに構成ファイルを定義し、application.propertiesファイルをsrc/main/resourcesに保存します。
次に、各設定ファイルで@Profileアノテーションと@PropertySourceアノテーションを使用します。例えば
:
@Configuration
@Profile("dev")
@PropertySource("file:///${user.home}/.devopsbuddy/application-dev.properties")
public class DevelopmentConfig {
@Bean
public EmailService emailService() {
return new MockEmailService();
}
@Bean
public ServletRegistrationBean h2ConsoleServletRegistration() {
ServletRegistrationBean bean = new ServletRegistrationBean(new WebServlet());
bean.addUrlMappings("/console/*");
return bean;
}
}
そして、次のように私も、私はApplicationConfigを呼び出すすべてのプロファイルのための有効な設定ファイルを持っている
@Configuration
@Profile("prod")
@PropertySource("file:///${user.home}/.devopsbuddy/application-prod.properties")
public class ProductionConfig {
@Bean
public EmailService emailService() {
return new SmtpEmailService();
}
}
:
@Configuration
@EnableJpaRepositories(basePackages = "com.devopsbuddy.backend.persistence.repositories")
@EntityScan(basePackages = "com.devopsbuddy.backend.persistence.domain.backend")
@EnableTransactionManagement
@PropertySource("file:///${user.home}/.devopsbuddy/application-common.properties")
public class ApplicationConfig {
}
私のsrc/main/resources/application.propertiesファイルは次のようになります:
spring.profiles.active=dev
[email protected]
token.expiration.length.minutes=120
もちろん、私はspring.profile.activeプロパティをシステムプロパティとして渡すことで外部化できますが、私の場合は今のところうまくいきます。
"dev"プロファイルを渡すと、SpringはDevelopmentConfigクラスに定義されているすべてのプロパティとBeanに加えてApplicationConfigのすべてのプロパティとBeanをロードします。 "prod"を渡すと、代わりにProductionConfigとApplicationConfigのプロパティがロードされます。
私は、セキュリティ、電子メール、データJPA、Amazon Web Services、Stripeなどを使ってSpring Boot Webサイトを作成する方法を学んでいます。あなたが望むなら、あなたの興味を登録することができますhereとコースが登録のために開いているときに通知されます。
///は動作していません – Shiv
こんにちは、私は上記を示すサンプルプロジェクトへのリンクで私の答えを更新しました。参考までに、ここでサンプルプロジェクトを見つけることができます。 http://devopsfolks.com/stackoverflow-material/#36635163 –
ありがとうございます。私は確認して戻って – Shiv