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执行时(注释掉后两行代码),控制台并不会打印初始化信息,而将后两行代码开启时,则初始化信息与打印信息一同输出。

  • 相关阅读:
    搜索专题题解(FJUT
    Fliptile(枚举+DFS)
    Tempter of the Bone(DFS+剪枝)
    转换地图 (康托展开+预处理+BFS)
    C++输入输出常用格式(cin,cout,stringstream)
    FJUT
    STL迭代器
    几道STL题目(FJUT
    STL容器(Stack, Queue, List, Vector, Deque, Priority_Queue, Map, Pair, Set, Multiset, Multimap)
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/hfultrastrong/p/7834643.html
Copyright © 2011-2022 走看看