- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一个 Spring FactoryBean 来生成 Request 对象的列表。请求的数量和进入其中的值可以在运行时配置,因此我想使用这些属性。
每个请求都包含一对 ID 值,因此我需要某种方式为 Factory Bean 提供这些 ID 对的可配置列表(现在将它们称为 A 和 B)。
到目前为止我所得到的是使用一个看起来像这样的属性:
requests=1/2,3/4,5/6
然后定义三个请求,一个请求 A=1 和 B=2,一个请求 A=3 和 B=4,一个请求 A=5 和 B=6。
这显然配置起来有点麻烦,而且很容易出错。更好的方法是将值拆分为多个属性,因此上面的内容可能类似于:
requests.1.A=1
requests.1.B=2
requests.2.A=3
requests.2.B=4
requests.3.A=5
requests.3.B=6
这只会让正在发生的事情变得更加明显。
但是,我找不到任何方法将我的 FactoryBean 配置为访问所有可用属性,而不仅仅是从上下文传入的特定命名属性。
我在这里遗漏了什么吗?或者 - 甚至更好 - 是否有更好的方法来进行这种更容易支持和维护的配置?
最佳答案
您可以注入(inject) Environment bean 到您的 FactoryBean 实例中,它由上下文提供,您不必配置它。我不确定你是如何配置你的bean的,但我总是喜欢Java配置。所以这个例子将使用Java配置。
@Configuration
class FactoryBeanConfig {
@Bean
public FactoryBean(final Environment env) {
return new MyFactoryBean(env);
}
}
Environment 实例将允许您访问所有属性,因为它是 PropertyResolver您可以以编程方式循环属性
int x = 1;
while(true) {
env.getRequiredProperty("requests." + x + ".A")
env.getRequiredProperty("requests." + x + ".B")
}
关于java - Spring FactoryBean 可以访问上下文中的所有属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30504493/
小问题:如果我有实现 FactoryBean 接口(interface)的类,我如何从 FactoryBean 对象本身而不是 FactoryBean.getObject() 中获取? 长问题:我必须
我没有看到 FactoryBean 用于创建 bean 的实用程序...为什么不能在 Configuration 类中创建相应的 bean? FactoryBean 有什么需要? 我知道我在这里遗漏了
是否可以向 FactoryBean 添加一个非空默认构造函数,其中参数由 @Value 注入(inject)? @Service public class DateTimeFormatterFacto
我有一个应用程序,我希望能够根据属性文件中的值切换 DAO 实现。 Spring FactoryBean 接口(interface)看起来工作得很好,因为我可以通过 FactoryBean 提供 DA
我正在尝试编写一个 Spring FactoryBean 来生成 Request 对象的列表。请求的数量和进入其中的值可以在运行时配置,因此我想使用这些属性。 每个请求都包含一对 ID 值,因此我需要
我想一起使用 FactoryBeans 和范围。具体来说,我希望将 FactoryBean 创建和返回的对象放入指定的(可能是自定义的)范围内。问题在于执行以下操作: 导致 FactoryBean
我在 Spring Boot 应用程序中的项目类: package com.example.demo; public class FirstModel { public String getS
我正在通过 XML 配置和实例工厂方法实例化一些 bean: 我通过 BeanFactory.getBean("bean", arguments...) 以编程方式实例化我的原型(prototyp
假设我有以下 Spring 配置(Spring 版本为 3.0.3): 我有 FactoryBean 实现的实例和其他一些实例。我需要 Spring 注入
我刚刚开始使用 Spring 3 MVC,目前使用的是 3.2.4.RELEASE。我已经使用 spring 工具套件创建了基本项目,并添加了 Hibernate 和 mysql 的配置。这是我添加到
我正在尝试在 spring 版本 4.3.6 中解析 FactoryBean 中的泛型类型。我使用用于创建任意数量的 CarClient 实例的 FactoryBean 创建 bean。 public
我有一组 FactoryBean 的实例其类型为MyFactoryBean 。构造函数采用 Class并使用它来确定从 getObject() 返回什么: public class MyFactory
是否有可能创建一个 POJO bean 将/可以被 Spring 视为 FactoryBean。所以我想创建一个 FactoryBean 类(有 getObject、getType、isSinglet
我正在尝试使用 org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean 在 Spring 4 中创建一个 FreeMa
我使用假客户端微服务并收到以下错误 - $ mvn spring-boot:run [INFO] Scanning for projects... [INFO] [INFO] ------------
Spring 提供了 FactoryBean 接口(interface)以允许对 bean 进行非平凡的初始化。该框架提供了许多工厂 bean 的实现,并且——当使用 Spring 的 XML 配置时
FactoryBean可用于以编程方式创建可能需要复杂实例化逻辑的对象。 但是,FactoryBean创建的bean似乎没有成为spring管理的。这种解释正确吗?如果是这样,有什么好的解决方法吗?包
我知道在使用 XML ( Spring ) 定义 bean 时可以获得对 factorybean 实例的引用。例如。: 但这也可以通过注释来做到这一点吗? (也许使用@Autowired 和@Qua
我想用自定义 Converter 创建一个 Spring ConversionService,但是 ConversionServiceFactoryBean#getObject 的返回值为 null。
我有两个接口(interface) IFoo 的实现: Foo1和 Foo2 . 我需要上下文才能为任何需要 IFoo 的类注入(inject)正确的上下文该类不知道它将获得什么实现(因此不使用 @Q
我是一名优秀的程序员,十分优秀!