我已经查看了下面的线程,并遵循了其中给出的内容。仍然没有发生我的属性重写
我在Tomcat 8.0.33和Spring boot starter web上,并在我的setenv中得到了这个。上海
export JAVA_OPTS="$JAVA_OPTS -Dlog.level=INFO -Dspring.config.location=file:/opt/jboss/apache-tomcat-8.0.33/overrides/ -Dspring.profiles.active=dev"
在overrides文件夹中我得到了2个文件
1) <代码>应用程序。属性2)application-dev.properties
应用程序。属性中只有一个条目
spring.profiles.active=dev
我看到正确的log.level被输入到我的代码中,这意味着这个命令正在工作。只是我不知道为什么我的覆盖没有按预期发生
我的工作区中没有任何“属性空间持有人配置代码”。我甚至不确定我是否需要1
我不使用此方法将属性外部化。首先,我将尝试对您的方法提出建议,然后我将向您展示我使用的方法。
对于您的方法,建议使用file:///而不是file:/Spring,我发现当不传递冒号后的三个斜杠时,它无法识别属性。
我已经为您创建了一个示例项目,这里提供了说明。
现在说说我使用的方法。
我为每个概要文件定义一个配置文件,并保留应用程序。src/main/resources下的属性文件。
然后在每个配置文件上使用@Profile和@Property tySource注释。
例如:
@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;
}
}
和
@Configuration
@Profile("prod")
@PropertySource("file:///${user.home}/.devopsbuddy/application-prod.properties")
public class ProductionConfig {
@Bean
public EmailService emailService() {
return new SmtpEmailService();
}
}
我还获得了一个对所有概要文件都有效的配置文件,我称之为ApplicationConfig,如下所示:
@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。属性文件如下所示:
spring.profiles.active=dev
default.to.address=me@example.com
token.expiration.length.minutes=120
我当然可以把Spring具体化。轮廓通过将其作为系统属性传递来激活属性,但对于我的情况和目前来说,它是可以的。
在运行应用程序时,如果我传递了“dev”概要文件,Spring将加载DevelopmentConfig类中定义的所有属性和bean以及ApplicationConfig中的所有属性和bean。如果我传递“prod”,则将加载ProductionConfig和ApplicationConfig属性。
我正在完成一门关于如何使用安全、电子邮件、数据JPA、Amazon Web Services、Stripe等创建Spring Boot网站的课程。如果您愿意,您可以在此处注册您的兴趣,您将在课程开放注册时收到通知。
问题内容: 我在Tomcat 8.0.33和Spring Boot Starter Web上,并将其保存在我的setenv.sh中 在覆盖文件夹中,我有2个文件 1) 2) application.properties中有一个条目 我看到正确的log.level被输入到我的代码中,这意味着该命令正在运行。只是我不知道为什么我的超控未按预期发生 我的工作区中没有任何`PropertyPlacehol
我知道有很多关于这个的线程,但还没有一个解决我的问题。我有一个在Eclipse中运行的Spring Boot应用程序,我将参数外部化,以便部署到外部Tomcat并使属性远离战争。我将application.properties从src/main/Resources移至APP_ROOT/config。在catalina.sh,我添加了这个: 外部构建工作正常;然而,现在它不再从日食开始。我通过在启动
在springboot应用程序中,我有一个jar,然后是一个子目录config with application。属性,applicationContext。xml和log4j。。。属性文件。 我正在尝试外部化log4j配置。application.properties是这样外部化的。 但是,当springboot运行时,它使用jar文件中的log4j配置文件。通过使用-Dlog4j.debug选
问题内容: 我想将一些hibernate配置放在属性文件中,以使其无需构建和部署就可编辑。 我尝试按照不带persistence.xml配置文件的Create JPAEntityManager中的说明解决问题 app.properties: persistence.xml 在初始化代码中,应用程序执行以下序列(查找属性), 但失败并显示错误消息: 有人知道我的配置可能出什么问题吗? 版本:JBos
我希望在运行时传递变量,一旦war文件部署在tomcat上。如何使用classplath中的application.properties以及另一个属性文件ex。abcd.properties位于specific directory.am基本上希望设置额外的类路径,并从该路径中的属性文件中读取值,以及war部署的默认类路径位置。 我使用Spring boot。其中一种方法是将所有属性传递到数据库端,
我有这样的配置,需要用于Spring Boot应用程序。 默认情况下,spring-boot会拾取位于src/main/resources/中的application.properties文件 我想改变这个路径并将Spring Boot到不同的application.properties文件 我可以使用 有没有任何替代的解决方案,我可以做到这一点,而不通过命令行传递参数? 在我的主要班级 在我尝试