Spring - BeanFactory 新旧工厂差异
2017-11-14 21:03
344 查看
在将要被加入到spring容器中的service中,添加static静态代码块(加载类时被调用),用于判断spring中新旧bean工厂的加载性质。
当run2执行时(注释掉后两行代码),控制台会打印初始化信息。
当run3执行时(注释掉后两行代码),控制台并不会打印初始化信息,而将后两行代码开启时,则初始化信息与打印信息一同输出。
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执行时(注释掉后两行代码),控制台并不会打印初始化信息,而将后两行代码开启时,则初始化信息与打印信息一同输出。
相关文章推荐
- Spring 通过工厂方法(Factory Method)来配置bean
- [原创]java WEB学习笔记102:Spring学习---Spring Bean配置:bean配置方式(工厂方法(静态工厂方法 & 实例工厂方法)、FactoryBean) 全类名
- Spring配置bean的方法(工厂方法和Factorybean)
- 3,工厂模式--模拟spring的bean工厂beanFactory
- Spring源代码分析(15)---LocalSessionFactoryBean(工厂的工厂)
- Spring 通过工厂方法(Factory Method)来配置bean
- spring通过工厂方法和FactoryBean来配置Bean
- spring详解:通过FactoryBean自定义工厂初始化Bean
- MyBatis-Spring-SqlSessionFactoryBean(session工厂)
- Spring配置bean的方法(工厂方法和Factorybean)
- Spring学习笔记之配置bean的方式(工厂方法和Factorybean)
- Spring-配置bean的方法(工厂方法和Factorybean)【转】
- 先码后看 spring配置bean的几种方式:xml直接配置、静态工厂、实例工厂、factory bean、注解 侵立删
- Spring学习笔记一: Bean工厂(BeanFactory )与应用上下文(ApplicationContext)BeanFactory
- Spring配置bean的方法(工厂方法和Factorybean)
- Spring学习笔记一: Bean工厂(BeanFactory )与应用上下文(ApplicationContext)BeanFactory
- Spring 通过工厂方法(Factory Method)来配置bean
- Spring学习(7)--Spring中通过工厂方法和FactoryBean配置bean
- Spring中启用AOP时要使用ApplicationContext而不要使用XmlBeanFactory
- Spring之FactoryBean