标签: properties-file

server.error.path 属性到底是什么?

在Spring Boot中,这样做的目的是什么server.error.path在 Spring Boot 中, application.properties 文件中的属性

文档只是说:

错误控制器的路径

但我想要通过一个例子来清楚地描述这个属性。

configuration spring properties-file spring-boot

4
推荐指数
1
解决办法
9045
查看次数

通过环境变量覆盖 Spring Boot yaml 属性

使用 Spring Boot 2.6.1,如果我有一个application.properties如下所示的文件:

spring.datasource.url="jdbc://blahblah"
Run Code Online (Sandbox Code Playgroud)

我可以在运行时使用名为 的环境变量覆盖该值spring.datasource.url,并且我的应用程序将连接到环境变量中指定的数据库。

但是,如果我有一个等效的application.yaml文件,那么以这种方式指定环境变量似乎没有效果。

spring:
  datasource:
    url: "jdbc://localhost..."
Run Code Online (Sandbox Code Playgroud)

但是,如果我将环境变量重命名为SPRING_DATASOURCE_URL,覆盖将再次起作用。这在其他属性中似乎也是一致的(不仅仅是数据源 URL)。

浏览文档,并不清楚为什么会出现这种情况,除了 yaml 配置似乎通常与“正常”属性文件的处理方式略有不同。

这种行为是预期的吗?

yaml properties-file spring-boot

4
推荐指数
1
解决办法
1万
查看次数

使用ant脚本使用两个.properties文件?

我想知道是否有可能让ant脚本同时引用2个不同的.properties文件,如果是这样,如何实现这一点.

假设两个.properties文件中包含的属性是互斥的,即相同的属性不会出现两次.

谢谢!

ant properties-file

3
推荐指数
2
解决办法
6884
查看次数

使用osgi访问bundle内的公共属性文件

我有一个带有多个包的osgi应用程序(在felix中).一个包中有一些常见的属性文件,其余的包只需要使用它们.

我们使用maven和spring osgi,属性文件在resouces中:

<path to bundle>/src/main/resources/
    common.properties
    engine.properties
    ...
Run Code Online (Sandbox Code Playgroud)

Maven通常在bundle jar中构建它们,因此它们应该在应用程序类路径中,但Spring无法访问它们,这会失败:

<context:property-placeholder location="classpath:common.properties" />
Run Code Online (Sandbox Code Playgroud)

(试过classpath*:和其他组合)

我读过这个这个

它是否真的是osgi意识形态的全球问题,没有标准的方法让它运作?只有黑客和解决方法就像<osgix:cmProperties...>

它关注的是因为它使部署更加困难且容易出错:您无法mvn deploy像在普通应用程序中那样在jars中部署属性文件, - 您必须手动将它们复制到每个版本的生产框中.

java spring osgi classpath properties-file

3
推荐指数
1
解决办法
4693
查看次数

为dev/QA/prod配置Java EE 6

我有一个Java EE 6应用程序,我使用Maven构建,代码在NetBeans 7中,并部署在GlassFish 3.1.2上.当我接近完成时,我发现自己正在部署演示版本.

问题是我没有任何简单的方法来构建不同的环境,如dev,QA,demo,prod等.对于某些东西,我一直在使用带有一堆静态getter返回的Java类基于环境常量值的值.但是这对条件设置没有帮助

  • javax.faces.PROJECT_STAGE(web.xml)
  • 数据库凭据(glassfish-resources.xml)
  • 邮件服务器(glassfish-resources.xml)
  • JPA日志记录级别(persistence.xml)

可能还有许多我现在都想不到的其他东西分散在XML文件中.

有没有办法定义这些配置文件的多个版本,只需在构建时设置一个标志来选择环境,而在没有指定环境时默认为dev?在这种情况下,有没有办法让Maven为我工作?

java configuration maven properties-file java-ee-6

3
推荐指数
1
解决办法
2819
查看次数

Sublime text 2:如何为java .properties文件绑定'comment a line'命令

也许标题有点复杂,但情况更简单:

在Sublime文本2中,"Java属性"范围(对于具有"*.properties"扩展名的文件)不起作用快捷方式"注释一行"(在Win中为Ctrl+ /).

那么也许有人知道如何实现这个功能?我试过了,但'Java Properties'没有单独的软件包,这让我很困惑.

用例:

- > label.quantity = Quantity

- >(Ctrl+ /)

- > #label.quantity = Quantity

而已.

keyboard-shortcuts properties-file sublimetext2

3
推荐指数
1
解决办法
772
查看次数

Spring Boot默认属性编码改变了吗?

我试图找到一种方法来为@ValueSpring Boot中的application.property文件中的注释访问的属性设置UTF-8编码.到目前为止,我已经通过创建bean成功地将编码设置为我自己的属性源:

@Bean
@Primary
public PropertySourcesPlaceholderConfigurer placeholderConfigurer(){
    PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
    configurer.setLocation(new ClassPathResource("app.properties");
    configurer.setFileEncoding("UTF-8");
    return configurer;
}
Run Code Online (Sandbox Code Playgroud)

这种解决方案存在两个问题 这一次,它不适用于Spring Boot默认使用的"application.properties"位置(http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config .html #boot-features-external-config),我被迫使用不同的文件名.

另一个问题是,通过它我可以手动定义和排序多个源的支持位置(例如,在jar与外部jar属性文件等中),从而重做已经完成的工作.

如何获取对已配置的PropertySourcesPlaceholderConfigurer的引用,并在应用程序初始化的恰当时间更改其文件编码?

编辑:也许我在其他地方犯了错误?这就是导致实际问题的原因:当我使用application.properties允许用户将个人名称应用于从应用程序发送的电子邮件时:

@Value("${mail.mailerAddress}")
private String mailerAddress;

@Value("${mail.mailerName}")
private String mailerName;                       // Actual property is ?wi?ty Miko?aj

private InternetAddress getSender(){
    InternetAddress sender = new InternetAddress();
    sender.setAddress(mailerAddress);
    try {
        sender.setPersonal(mailerName, "UTF-8"); // Result is Święty Mikołaj
        // OR: sender.setPersonal(mailerName);   // Result is ??wiÄ?ty Miko??aj
    } catch (UnsupportedEncodingException e) {
        logger.error("Unsupported encoding used in sender …
Run Code Online (Sandbox Code Playgroud)

java utf-8 properties-file spring-boot

3
推荐指数
1
解决办法
8172
查看次数

属性文件中保存的值有长度限制吗?

我有configAllowedUsers.properties

它具有单入条目,如下所示:

users = abc, pew, rt, me1, me3, ku3,........
Run Code Online (Sandbox Code Playgroud)

我对其中存储的值的长度存有疑问。我将使用阅读它 java.util.Properties。数千个用户名将存储在其中,而我无法将其存储在数据库中。

java limit properties-file

3
推荐指数
1
解决办法
2932
查看次数

Spring Boot不使用数据源属性

我已经在application.properties中设置了spring.datasource。*:

spring.datasource.url=jdbc:h2:./data/test
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
Run Code Online (Sandbox Code Playgroud)

然后我配置了JdbcTemplate Bean

@Bean
@Autowired
public JdbcTemplate jdbcTemplate(DataSource dataSource) {
    return new JdbcTemplate(dataSource);
}
Run Code Online (Sandbox Code Playgroud)

但是当我启动应用程序时,我在控制台中看到了

Starting embedded database: url='jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false', username='sa'
Run Code Online (Sandbox Code Playgroud)

而不是我的设置。为什么?

spring database-connection spring-jdbc properties-file spring-boot

3
推荐指数
1
解决办法
6500
查看次数

使用Groovy在Java属性中进行变量扩展

我经常使用标准的Java属性文件来配置我的Groovy应用程序.我缺少的一个功能是能够将变量用作属性值的一部分,因此可以在使用期间动态扩展它们.我以为我可以使用以下设计提供此功能:

  1. 使用特殊格式注释应扩展的属性.我选择将这些模板包含在双惊叹号(!!)中.这些属性值本质上是一个用局部变量扩展的模板
  2. 在使用应用程序中的属性之前,使用groovy'alcome'方法在模板中展开应用程序变量
  3. 使用前将原始属性键重新分配给新值

所以,如果我有一个属性文件config.properties,其属性如下:

version=2.3
local_lib=!!${env['GROOVY_HOME']}/${configProps.getProperty('version')}/lib!!
Run Code Online (Sandbox Code Playgroud)

local_lib属性将从扩大GROOVY_HOME环境变量和版本属性值.

在我的应用程序中,我将其编码如下:

//Load the environment variables and configuration file
env=System.getenv()
configFile=new File('config.properties')
configProps= new Properties()
configProps.load(configFile.newDataInputStream())

//Replace configuration property values with their expanded equivalent
configProps.each{
  //if a property value is a template we evaluate it
  if (it.value.startsWith('!!')){
    valTemplate=it.value.replace('!!','"')
    it.value=evaluate(valTemplate)
  }
}

 //then we use the expanded property values 
Run Code Online (Sandbox Code Playgroud)

这似乎有效.当我做

println configProps
Run Code Online (Sandbox Code Playgroud)

我看到该值被扩展而不是null

但是,展开属性的getProperty方法返回null.

assert configProps.getProperty('local_lib')=='C:\\DEVTOOLS\\groovy-2.4.7/2.3/lib'
   |           |                       |
   |           null                    false
   [local_lib:C:\DEVTOOLS\groovy-2.4.7/2.3/lib, version:2.3] …
Run Code Online (Sandbox Code Playgroud)

java groovy variable-expansion properties-file

3
推荐指数
1
解决办法
957
查看次数