首页 > 技术文章 > spring MVC tmcat启动的时候实例化多次bean

feiZhou 2018-04-18 20:38 原文

/**  
 * @ClassName FileToPDFTask
 * @Description TODO(这里用一句话描述这个类的作用)
 * @author feizhou
 * @Date 2018年4月18日 下午4:52:27
 * @version 1.0.0
 */
@Service
public class FileToPDFTask {
//   @Scheduled(cron="*/5 * * * * ?") //每小时的33分钟开始执行,每3分钟执行1次   
//   public void FileToPDF(){
//      System.out.println("测试是否同一个实例"+ this.hashCode());
//      
//   }

    public FileToPDFTask() {

        super();  
        // TODO Auto-generated constructor stub  
        System.out.println("测试是否同一个实例"+ this.hashCode());

    }

}

  结果:
  测试是否同一个实例1079577597
测试是否同一个实例292674484
测试是否同一个实例1434338491
测试是否同一个实例911888712
测试是否同一个实例1633447565
测试是否同一个实例1313185862
测试是否同一个实例2123645932
测试是否同一个实例603890901
测试是否同一个实例1449548035
测试是否同一个实例1156893888
测试是否同一个实例1745054170
测试是否同一个实例367902417
测试是否同一个实例1049556537
测试是否同一个实例1513157735
测试是否同一个实例680567113

分析:可能存在的原因
1.xml:配置了bean:FileToPDFTask
2.注解配置了bean:

@Service
public class FileToPDFTask {

3:类加载时候加载了bean(配置静态属性)

//    public static ApplicationContext context = new ClassPathXmlApplicationContext("application-context.xml");
//    
//    public static Object getBean(String serviceName){
//          return context.getBean(serviceName);
//    }

果然:我的一个同事,给很多类配置这个属性

推荐阅读