zoukankan      html  css  js  c++  java
  • Spring

    在将要被加入到spring容器中的service中,添加static静态代码块(加载类时被调用),用于判断spring中新旧bean工厂的加载性质。

    package com.witwicky.service.impl;
    
    import com.witwicky.service.UserService;
    
    public class UserServiceImpl implements UserService {
    
    	static{
    		System.out.println("init...");
    	}
    	
    	@Override
    	public void hello() {
    		System.out.println("hello");
    	}
    
    }
    
    package spring;
    
    import org.junit.Test;
    import org.springframework.beans.factory.BeanFactory;
    import org.springframework.beans.factory.xml.XmlBeanFactory;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.core.io.ClassPathResource;
    
    import com.witwicky.service.UserService;
    import com.witwicky.service.impl.UserServiceImpl;
    
    public class Demo1 {
    	@Test
    	public void run1() {
    		UserService us = new UserServiceImpl();
    		us.hello();
    	}
    	
    	/**
    	 * 新工厂,当spring核心配置文件被加载完成时,其中配置的bean就已经被实例化
    	 */
    	@Test
    	public void run2() {
    		ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    //		UserService us = (UserService) ctx.getBean("userService");
    //		us.hello();
    	}
    	
    	/**
    	 * 旧工厂,延迟加载,只有在获取bean工厂里的对象时,才会被实例化。
    	 */
    	@Test
    	public void run3() {
    		BeanFactory bf = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
    //		UserService us = (UserService) bf.getBean("userService");
    //		us.hello();
    	}
    }
    

    当run2执行时(注释掉后两行代码),控制台会打印初始化信息。

    当run3执行时(注释掉后两行代码),控制台并不会打印初始化信息,而将后两行代码开启时,则初始化信息与打印信息一同输出。

  • 相关阅读:
    数字滤波器
    PCL点云库:Kd树
    KNN算法与Kd树
    分布式锁与实现(一)——基于Redis实现
    Redis分布式锁的正确实现方式
    redis常用命令大全
    使用 Redis 实现排行榜功能
    RabbitMQ下的生产消费者模式与订阅发布模式
    java高级精讲之高并发抢红包~揭开Redis分布式集群与Lua神秘面纱
    Java进阶面试题大集合-offer不再是问题
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/7834643.html
Copyright © 2011-2022 走看看