1. 程式人生 > >【IOC】元件註冊(二)

【IOC】元件註冊(二)

當弄清楚有哪些方式可以往Spring容器中註冊元件之後,我們再來看一下和元件註冊相關的其他註解: @Scope @Lazy @Conditional,其中@Conditional超級超級重要,SpringBoot中使用了大量的@Conditional

@Scope @Lazy

	//預設是單例項的
	/**
	 * ConfigurableBeanFactory#SCOPE_PROTOTYPE    
	 * @see ConfigurableBeanFactory#SCOPE_SINGLETON  
	 * @see org.springframework.web.context.WebApplicationContext#SCOPE_REQUEST  request
	 * @see org.springframework.web.context.WebApplicationContext#SCOPE_SESSION	 sesssion
	 * @return
	 * @Scope:調整作用域
	 * prototype:多例項的:ioc容器啟動並不會去呼叫方法建立物件放在容器中。每次獲取的時候才會呼叫方法建立物件;
	 * singleton:單例項的(預設值):ioc容器啟動會呼叫方法建立物件放到ioc容器中。以後每次獲取就是直接從容器(map.get())中拿,
	 * request:同一次請求建立一個例項
	 * session:同一個session建立一個例項
	 * 
	 * 懶載入:
	 * 單例項bean:預設在容器啟動的時候建立物件;
	 * 懶載入:容器啟動不建立物件。第一次使用(獲取)Bean建立物件,並初始化;
	 */
	@Scope("prototype")
	@Lazy
	@Bean("person")
	public Person person(){
		System.out.println("給容器中新增Person....");
		return new Person("張三", 25);
	}