问题标签 [property-placeholder]

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 投票
10 回答
147454 浏览

java - @Value 注释类型从 String 转换为 Integer

我正在尝试将值的输出转换为整数:

以上抛出错误

我也试过@Value("(java.lang.Integer)${api.orders.pingFrequency}")

谷歌似乎没有在这个问题上说太多。我想总是处理一个整数,而不是在使用它的任何地方解析这个值。

解决方法

我意识到一种解决方法可能是使用 setter 方法为我运行转换,但如果 Spring 可以做到,我宁愿学习一些关于 Spring 的知识。

0 投票
1 回答
2912 浏览

spring - context:property-placeholder 如何引用属性bean

我们在 spring 上下文中有这个现有的属性加载器配置

并且有一个引用该bean 的hedgingPropertiesbean

我正在重构上下文以从多个属性文件加载,并避免属性的重复定义。我的第一次尝试是用这个bean代替上面的两个

hedgingProperties但是当我使用 bean 时如何保留别名或引用context:property-placeholder

0 投票
1 回答
2015 浏览

spring - 范围在等级环境中

我读过了:

多组件扫描

Spring MVC 中的 ApplicationContext 和 WebApplicationContext 有什么区别?

如果 <context:component-scan /> 在应用程序上下文而不是调度程序上下文中,@RequestMapping 注释不起作用(稍后会详细介绍)

和其他几个,但这些都没有回答这个问题:

<context:component-scan.../>当 Spring MVC 应用程序的 ROOT 上下文中存在时,为什么范围是有限的?

我的理解是,它会导致扫描指定包中的所有类,并实例化任何使用其原型@Component或其任何子原型(@Repository@Service)的 bean @Controller

鉴于:

applicationContext.xml(根上下文)

main-servlet.xml(servlet 上下文)

com/myproject/web/MainController.java

Spring 文档声明在根上下文中实例化的任何 bean 都是共享的,并且可用于各个 servlet 应用程序上下文。因此,根上下文中的两个<context:...>声明应该导致在 servlet 上下文中可见的 bean。但情况似乎并非如此。我需要在 servlet 上下文中<context:component-scan.../>重复。<context:property-placeholder.../>

在 servlet 上下文中省略 会<context:component-scan.../>导致

表示@Controller未解决。

使用未处理的属性引用省略注释中的<context:property-placeholder.../>结果@Value,在我的情况下会导致一些断开的链接。

由于这两个<context:.../>指令都会导致 bean 实例化,我很困惑为什么 bean 在子上下文中不可见,这与文档直接矛盾。此外,没有两个component-scan语句会导致控制器 bean 被实例化两次吗?

关于@RequestMapping 注释不起作用,如果 <context:component-scan /> 在应用程序上下文而不是调度程序上下文中,我确实<mvc:annotation-driven />在我的应用程序上下文中,并且这里的答案没有解释为什么component-scan需要两个语句。

除非我完全理解它是如何工作的并且可以预测当我调整某些东西时它会如何表现,否则我对使用“魔法”感到非常不舒服。所以“两个地方都加就继续”的“解决方案”是不能接受的。

0 投票
2 回答
1865 浏览

java - bean 名称的持续错误

最近我决定和 Spring 一起玩。我做了一些教程,一切似乎都很好,直到我尝试使用多个属性文件。正如互联网所说,做类似的事情就足够了

好吧,不幸的是它不起作用。令人惊讶的是,这个版本有效(对于一个属性文件夹):

控制台说如下:

有人可以帮我吗?

编辑

@Denis Makarskiy 我已经尝试了很多次,但没有令人满意的结果。我现在有

0 投票
1 回答
5354 浏览

spring - Spring YAML 配置文件配置

我不确定我是否充分理解 Spring 配置文件如何与 yaml 和属性文件一起使用。我试图混合这两种类型的配置(这两个文件不共享任何配置)但是我在从 yaml 配置中读取配置文件时遇到了问题。

我正在使用 Spring 4.1.1

这是代码。这是 context:property-placeholder 配置:

其中 yamlProperties 是以下 bean

这是test.yml

我的问题是,当我尝试通过这样做来配置(通过 xml)我的数据源时:

Spring 总是使用 YAML 文件中的最后一个配置,而忽略配置文件。我试图通过 web.xml 中的 contex-parameter 或直接将活动配置文件传递给 JVM(我实现了一个实现 EnvironmentAware 接口的 bean 以获取活动/默认配置文件,并且它是正确的),这似乎一切都很好,但是,当试图注入配置文件的值被忽略。

我相信使用属性占位符上下文(带有订单)我得到一个属性占位符,它是 PropertySourcesPlaceholderConfigurer 的一个实例,因此可以访问 Environment 但我不明白为什么配置文件被忽略并且 spring 获取最后一个 yaml 文件配置。

我在第 63.6 节 http://docs.spring.io/spring-boot/docs/current/reference/html/howto-properties-and-configuration.html中添加了对文档(spring-boot)的引用

提前致谢

0 投票
3 回答
3463 浏览

osgi - 从java访问Karaf cfg文件中的属性?

我在蓝图中使用 cm:property-placeholder 来加载配置文件:

我可以将值设置为 bean,例如 ${abc}。
如何从 java 访问配置的任何其他属性?

我打算添加属性列表:prop1=11 prop2=22 ... propn=nn

由于数量不同,我无法在蓝图中全部添加。

谢谢你,维克托

0 投票
0 回答
128 浏览

java - 在 Spring 中检索合并的属性

我正在尝试在我的项目中获取所有合并的属性。以下是我的属性配置文件部分。

我也尝试过PropertiesFactoryBean上课,但proj.env找不到我的变量。建议我如何在运行时检索 spring 中的所有合并属性。

0 投票
1 回答
1165 浏览

java - 读取外部属性文件

我正在使用 Spring MVC 开发此应用程序。我应该从外部 .properties 文件中读取。

mvc-调度程序-servlet.xml

配置.java

EditorController.java

当我启动应用程序时,它能够读取文件并获取 url,但是一旦我在浏览器中打开它,hostURL=null。

有人可以指出错误是什么吗?

0 投票
1 回答
2390 浏览

java - 没有@Value注释的Spring注入属性值

我们一直在使用 Spring @Value 注解来注入属性值。我们有一个约定来命名属性名称以匹配它们注入的 java 字段。这带来了不必要的工作,即每个配置 bean 的 java 字段都需要使用 @Value 进行注释。

我正在寻找一种方法来使用新注释(比如说 ConfigBean)来注释 java 类,并让一些后处理器读取此类 bean 的属性名称并自动注入属性值。

我正在寻找一些关于如何在没有 @Value 注释的情况下实现此属性注入的指示。

0 投票
1 回答
902 浏览

java - 在弹簧上下文加载期间更新属性文件

我想将 Jasypt 库与 spring 属性机制集成。

在此处的示例教程中:http ://www.jasypt.org/spring31.html作者假设用户手动执行加密,然后仅将 ENC( ) 占位符之间的加密值传递给配置文件。这对我来说还不够。

我想实现给定的场景:

  1. 将此行放入带有属性的文件中:

    /li>
  2. 开始申请

  3. Spring Framework 将加密密码(使用 jasypt)并将上面的行替换为:

    /li>

在进一步的启动中,spring 只解密加密的值(例如使用org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer)并且文件不被修改。

我想我需要创建自己的 Spring PropertyPlaceholderConfigurer,但我看不到任何修改文件的可能性。

我可以将自定义设置org.springframework.util.PropertiesPersister为我的PropertyPlaceholderConfigurer,好吧,但我仍然不知道我需要更新哪个文件(在我的春天@Configuration 可能有很多属性位置,一些属性可以用另一个文件中的值覆盖等)。

换句话说:我需要在属性资源解析和合并之后注入我的(de|en)加密逻辑,但在将值注入另一个 bean 之前。

感谢您提前提供任何解决此问题的建议。