spring - 如何将 Spring 特性注入(inject)到检门组件中?

标签 spring properties dependency-injection wicket

我正在寻找将 spring 上下文中定义的属性(由propertiesFactoryBean 提供)注入(inject)到 wicket 组件中的可能性。我知道使用@SpringBean注解将bean注入(inject)组件的方法,但是属性的相应方法是什么?

我的属性的定义方式:

<bean id="myPropertiesFactory" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
    <property name="properties">
        <props>
            <prop key="mySpringProperty">mySpringProperty</prop>
    </property>
</bean>

我尝试过的事情。它通常与自定义bean一起工​​作的方式:

@Inject
@Value("${mySpringProperty}")

使用propertiesFactory的名称来访问属性值

@Inject
@Value("$myPropertiesFactory.properties.mySpringProperty")

使用注释

@Value("#myPropertiesFactory['mySpringProperty']")

使用SpringBean

@SpringBean(name="myPropertiesFactory.mySpringProperty")

这些解决方案都不起作用。因此,为了注入(inject) mySpringProperty ,我使用解决方法创建一个 String 类型的 bean,当我用 SpringBean 注释组件的相应成员时,该 bean 会由 wicket 正确注入(inject),但我认为一定有更好的解决方案。

<bean id="mySpringPropertyBean" class="java.lang.String">
    <constructor-arg type="java.lang.String" value="https://foobar.com" />
</bean> 

注释

@SpringBean
private String mySpringPropertyBean;

最佳答案

@SpringBean仅支持spring bean的注入(inject)。我想有人可以实现一个 @SpringValue 注释来完成你想要的事情,但据我所知没有人这样做过。

我通常做的是:

  • 我的 wicket 应用程序类是 spring bean。
  • 它具有带有 @Value 注释的属性 - 由于该对象是 spring bean,因此会正确评估和设置这些属性
  • 我通过调用 MyApplication.get().getXXX() 或 ((MyApplication)getApplication()).getXXX() 来访问实际值
  • 如果应用程序不断增长并且属性数量接近限制,我会将它们重构为单独的 Settings 或 Config 类 - 每个类都是它自己的 Spring bean,可从应用程序类访问。

关于spring - 如何将 Spring 特性注入(inject)到检门组件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34417457/

相关文章:

java - spring boot oauth2 feign 允许匿名请求

swift - 有没有比使用 switch 语句更好的方法来快速访问变量的不同属性?

java - 使用 Mockito 在注入(inject)的服务类中注入(inject)对象

dependency-injection - 依赖注入(inject)在spring boot测试中不起作用,但在正常开发中起作用

ios - 如何从 AppDelegate.m 访问一些实例类变量

c# - Dotnet Core 是否实现组合根发现?

java - 严重 : The RuntimeException could not be mapped to a response, 重新抛出到 HTTP 容器 java.lang.NullPointerException

java - Spring ApplicationContext 在 bean 调用之前关闭

spring - JMeter性能测试下出现Activiti死锁

javascript - 检测对 Javascript 对象属性的添加