SpringBoot装载bean的几种方式

一、直接装配

package com.lh.bean;

/** 
* @ClassName: MyBean 
* @Description: 简单直接方式注入bean
* @author Liu 
* @date 2018年5月26日 下午6:21:44 
*/
public class MyBean {

}
	/***
	* @Title: createMyBean 
	* @Description: 1、返回bean名称默认为方法名
	* 				2、同时也可以手动指定bean名称
	* @param @return  
	* @return MyBean
	* @throws
	 */
	@Bean(name = "myBean")
	@Scope("prototype")//指定为原型方式,即多例
	public MyBean createMyBean() {
		return new MyBean();
	}

二、FactoryBean工厂方式

package com.lh.bean2;

import org.springframework.beans.factory.FactoryBean;

/** 
* @ClassName: RunnableFactoryBean 
* @Description: TODO
* @author Liu 
* @date 2018年5月26日 下午6:44:07 
*/
public class JeepFactoryBean implements FactoryBean<Jeep> {

	@Override
	public Jeep getObject() throws Exception {
		return new Jeep();
	}

	@Override
	public Class<?> getObjectType() {
		return Jeep.class;
	}

	@Override
	public boolean isSingleton() {
//		return true;
		return false;
	}

}
	@Bean
	public JeepFactoryBean createJeepFactoryBean() {
		return new JeepFactoryBean();
	}

三、普通工厂模式方式

package com.lh.bean3;

/** 
* @ClassName: JeepFactory 
* @Description: TODO
* @author Liu 
* @date 2018年5月26日 下午9:59:06 
*/
public class CarFactory {
	public Car create() {
		return new Car();
	}
}
package com.lh.bean3;

/** 
* @ClassName: Car 
* @Description: 自定义工厂类创建实体,实体创建依赖之前定义的工厂类
* @author Liu 
* @date 2018年5月26日 下午10:04:06 
*/
public class Car {

}
	@Bean
	public CarFactory createCarFactory() {
		return new CarFactory();
	}

猜你喜欢

转载自my.oschina.net/Howard2016/blog/1820786