0

我的 context.xml 中有以下内容:

<bean id="myBean" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>file:${specific.dir}/file1.properties</value>
            <value>file:${specific.dir}/file2.properties</value>
            <value>file:${specific.dir}/file3.properties</value>
            <value>file:${specific.dir}/file4.properties</value>
        </list>
    </property>
</bean>

我正在通过静态弹簧应用程序上下文在 POJO 中检索这个 bean,并且通过调试器这似乎确实有效。

无论如何,我是否可以检索列表中的四个值以及此 POJO 中的属性名称?

我的 staticSpringApplicationContext 如下:

public class StaticSpringApplicationContext implements ApplicationContextAware  {
private static ApplicationContext CONTEXT;

  public void setApplicationContext(ApplicationContext context) throws BeansException {
    CONTEXT = context;
  }

  public static Object getBean(String beanName) {
    return CONTEXT.getBean(beanName);
  }

}

在我的 POJO 中遵循这个,我有:

StaticSpringApplicationContext.getBean("myBean");

非常感谢任何帮助或指导。我在 Spring 上遇到的麻烦比我愿意承认的要多。

4

2 回答 2

1

您可以使用 spring @Value 注释,像这样:

@Component
public MyClass {

  @Value("${some.prop.name1}")
  private String myProp1;

}

文件1.属性:

some.prop.name1=value1

我希望它会有所帮助。祝你好运。

于 2013-07-31T18:47:04.807 回答
0

您是否可以这样做将取决于 bean 定义。它必须有一个setLocations()方法(或正确注释),S​​pring 将通过该方法注入值。

如果存在,您将使用 bean 上的 getter 方法检索值。如果没有,您将需要修改 bean。

于 2013-07-25T21:52:27.583 回答