问题标签 [spring-properties]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
17 回答
382384 浏览

java - 从属性文件中读取列表并使用弹簧注释@Value 加载

我想在 .properties 文件中有一个值列表,即:

并直接将其加载到我的班级中,即:

据我了解,这样做的另一种方法是将它放在 spring 配置文件中,并将其作为 bean 引用加载(如果我错了,请纠正我),即

但是有没有办法做到这一点?使用 .properties 文件?ps:如果可能的话,我想在没有任何自定义代码的情况下做到这一点。

0 投票
11 回答
165130 浏览

java - Spring @Value 没有解析为属性文件中的值

我以前在其他项目中也有过这个工作,我只是在重新做同样的事情,但由于某种原因它不起作用。Spring@Value不是从属性文件中读取,而是从字面上获取值

AppConfig.java

应用程序上下文.xml:

appconfig.properties

在我的控制器中,我有:

应用程序启动得很好,但是当我这样做时

它返回

它不会解析为属性文件中的值。

想法?

0 投票
4 回答
16348 浏览

java - Spring @Value("${}") 经常为空

我正在使用 Spring Boot 应用程序。在某些@Component@Value字段中加载,而不是在其他类中它们始终是null.

似乎(s)是在我的/创建@Value之后加载的。@Bean@Component

我需要从我的@Bean.

你有什么建议吗?

0 投票
0 回答
3091 浏览

java - messageSource.getMessage 发送 IllegalArgumentException:模式中的大括号不匹配

我使用 spring MessageSource 从我的本地化属性文件中获取消息。

在这种情况下,我在将邮件发送给用户之前使用它来创建邮件:

这是 message.properties 中的属性

所以在这里,我们有两种messageSource.getMessage的用法。第一个有效,第二个抛出 IllegalArgumentException:模式中的不匹配大括号。

我试图更改消息,更改/删除变量,删除引号和双引号,将属性移动到 message.properties 文件中的其他位置,但我总是得到同样的错误

0 投票
1 回答
616 浏览

spring - 与 Spring Cloud Config 共享属性

我们正在考虑迁移我们的 Spring 系统以使用 Spring Cloud Config。

该系统由多个服务和一些用于公共资源(如数据库数据源)的共享属性组成。对于这些,我们有一个“基本”配置文件,其中包含一个地方的常用属性。每个服务首先读取公共文件,然后在顶部重载它们的属性文件。这节省了我们重复公共属性的时间。

我看不到我们如何使用 spring cloud config 做同样的事情,我可以看到不同存储库的选项,但不会重载属性文件。

0 投票
2 回答
694 浏览

java - Spring 4.x 的自定义属性管理

阅读这篇文章,我可以轻松地在网络应用程序中自定义我的环境。

我的自定义非常简单,我在可部署的 war 文件中打包了一些属性文件,我希望在我的 web 服务器机器上有一个本地属性文件,以在重叠的情况下覆盖这些属性。为此,我实现了 ApplicationContextInitializer 接口,加载了我的本地属性文件并使用了我的环境的 addFirst 方法。这确保了我的本地文件覆盖了我的战争中打包的属性文件。

这非常有效。现在我想在 java-spring 进程(不是网络应用程序)中做同样的事情,我该怎么做?

到目前为止,我发现的最佳解决方案是在我的配置类中添加一个方法并使用@PostConstruct注释对其进行注释。这个方法和 ApplicationContextInitializer 的初始化方法完全一样。

这个解决方案不能满足我的需求,因为我有一些有条件地加载的 bean,并且这(条件注释代码)发生在我的 @postConstruct 方法之前(这不好,因为条件加载基于我的属性)。

0 投票
1 回答
7712 浏览

spring-boot - @Value 始终为空

我有一种情况,我尝试使用 @Value 注释导致值为空。

这是一个大型项目的一部分,我不确定需要它的哪些部分。我正在使用 Java 注释(没有 xml 文件)和 Spring boot。



application.properties 包含:

我确实尝试创建一个 PropertySourcesPlaceholderConfigurer,正如一些网站提到的那样。

这是尝试使用它的类:

但是在运行时,maxFileUploadSize 始终为空。请注意下面的调试注释,其中 PropertySourcesPropertyResolver 似乎在 application.properties 文件中找到了正确的值。

0 投票
1 回答
1352 浏览

java - 创建具有不同属性的同一类的多个 bean 的最干净的方法

假设我有这个属性文件:

我想要一个包含学生地图的 xml bean,其中学生的名字作为键。

对象示例:

学生.java

课堂.java

我正在寻找一种方法,可以说,从属性 students.bill.* 创建一个学生 bean 并将其添加到教室 bean 地图中。然后为students.jim.*制作一个并将其添加到教室bean地图中。我真的不想为每个学生创建一个 bean,然后将每个值都放入其中。

0 投票
2 回答
682 浏览

java - Spring 属性如何查找/优先级工作?

我已经和这个斗争了一段时间了。我用谷歌搜索并尝试了一些东西,但我发现的一切都无法解决我的问题。

这就是我的属性位置。

然后,在我的一个子项目中,我有 2 个属性文件,我的“生产”属性在

src/main/resources/com/lala/project/subproject1/subprojectA/configuration/myProperties.properties

和我的“测试”属性

src/test/resources/com/lala/project/subproject1/subprojectA/test/configuration/myProperties.properties

显然,这些文件具有几乎相同的属性名称,但具有不同的值。我想知道的是为什么我在 subprojectA 中的测试不断选择我的“生产”属性而不是我的“测试”属性?换句话说,为什么 spring 不拿起我的“测试”属性并覆盖我的“生产属性”?

我忘了提到我不能简单地删除我的测试配置文件的“生产”属性位置,因为我需要来自其他项目、子项目的生产属性。

0 投票
1 回答
2526 浏览

java - Spring读取属性文件但值为空

我真的不明白这里的问题。我正在尝试在我的 Spring 应用程序中使用属性文件。该文件似乎已被读取,但如果我尝试读取这些值,我会得到空值。

这是我的上下文 xml 的(部分):

我在 src/main/resources 下有我的 test.properties

当我尝试像这样运行它时:

输出将是:

所以我认为除了系统属性之外,我应该在“propertySources”中看到一些东西,对吗?

此外,如果我将 xml 行更改为:

我得到一个 FileNotFound 异常,这意味着文件本身已加载?那么为什么我不能从中加载属性呢?

在 test.properties 我只有这个:

这里可能是什么问题?