本文共 1175 字,大约阅读时间需要 3 分钟。
Spring中有两种类型的Bean,一种是普通Bean,另一种是工厂Bean,即FactoryBean.工厂Bean跟普通Bean不同,其返回的对象不是指定类的一个实例,其返回的是该工厂Bean的getObject方法所返回的对象.创建出来的对象是否属于单例由isSingleton中的返回决定. 使用场景:
1>通过外部对类是否是单例进行控制,该类自己无法感知
2>对类的创建之前进行初始化的操作,在afterPropertiesSet()中完成
Spring初始化bean的时候,如果bean实现了InitializingBean接口,会自动调用afterPropertiesSet方法.
演示
@Componentpublic class TestInitializingBean implements InitializingBean { @Override public void afterPropertiesSet() throws Exception { System.out.println("InitializingBean"); }}
结果:
2021-04-27 15:34:37.522 INFO 14724 --- [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 772 msInitializingBean2021-04-27 15:34:37.656 INFO 14724 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'2021-04-27 15:34:37.805 INFO 14724 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 80 (http) with context path ''2021-04-27 15:34:37.813 INFO 14724 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 1.446 seconds (JVM running for 2.222)
转载地址:http://byazi.baihongyu.com/