如何从一个不受spring管理的pojo中获取Spring Context中的Property?

bon*_*ond 4 spring properties pojo

我有一个在spring context xml文件中配置的属性文件.我从文件加载值很好.我试图从常规pojo中加载属性文件中的属性,而不是弹簧管理.由于Spring已经加载了该属性,我想知道是否有办法获取值而不是我必须手动加载属性文件?

Ben*_*chi 6

如果您的pojo不是由Spring管理的,您可以以静态方式访问Spring上下文.

将bean添加到应用程序xml:

<bean id="StaticSpringApplicationContext" class="com.package.StaticSpringApplicationContext"/>
Run Code Online (Sandbox Code Playgroud)

创建一个类:

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);
      }

}
Run Code Online (Sandbox Code Playgroud)

然后你可以使用以下方法从你的POJO访问任何Spring bean:

StaticSpringApplicationContext.getBean("yourBean")
Run Code Online (Sandbox Code Playgroud)