java – Spring:在没有Singelton Beans的情况下以编程方式使用PropertyPlaceHolderConfigurer

我知道PropertyPlaceHolderConfigurer的以下实现是可能的:

public class SpringStart {
   public static void main(String[] args) throws Exception {
     PropertyPlaceholderConfigurer configurer = new PropertyPlaceholderConfigurer();
     Properties properties = new Properties();
     properties.setProperty("first.prop","first value");
     properties.setProperty("second.prop","second value");
     configurer.setProperties(properties);

     ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext();
     context.addbeanfactoryPostProcessor(configurer);

     context.setConfigLocation("spring-config.xml");
     context.refresh();

     TestClass testClass = (TestClass)context.getBean("testBean");
     System.out.println(testClass.getFirst());
     System.out.println(testClass.getSecond());
  }}

配置文件中有这个:

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd“>

但是,这使我看到对testBean所做的更改将显示在所有测试bean上.

如何以这样的方式使用propertyPlaceHolderCongfigurer,我可以将它应用于bean的各个实例,并且可以访问这些实例中的每一个?

我希望这个问题有道理.任何帮助将非常感激.

最佳答案
默认情况下,Spring bean是单例,即后续对context.getBean(“testBean”)的调用将返回相同的实例.如果希望它们返回不同的实例,则应在bean定义上设置scope =“prototype”:

相关文章

Spring Cloud为Spring Boot应用程序提供Netflix OSS集成。 提供的功能模块包括服务发现(Eureka),断路...
Spring Cloud 学习笔记;maven配置;入门学习;基于Spring Boot 实现;服务端配置,客户端配置;
可以毫不夸张地说,这篇文章介绍的 Spring/SpringBoot 常用注解基本已经涵盖你工作中遇到的大部分常用的...
Spring中各种方式进行日期时间处理,有作用于单个实体的,也有作用于全局的,有作用于请求入参的,有作...
跨域资源共享(Cross-origin resource sharing)(CORS)是W3C的标准,大部分的浏览器都实现了这个标准...
Spring Boot使创建基于Spring的应用程序变得轻松,大部分的SpringBoot应用程序都只需要很少的Spring配置...