1.在配置类中创建
利用@bean注解,将要创建的对象通过方法返回值创建出来,可以在方法里面对对象进行配置
2.利用ApplicationContextAware的实现类,从已有的spring上下文取得已实例化的bean。通过ApplicationContextAware接口进行实现。
当一个类实现了这个接口(ApplicationContextAware)之后,这个类就可以方便获得ApplicationContext中的所有bean。换句话说,就是这个类可以直接获取spring配置文件中,所有有引用到的bean对象。
@Component
public class SpringUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(ApplicationContext ac) throws BeansException {
SpringUtil.applicationContext =ac;
}
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
public static Object getBean(String id){
return applicationContext.getBean(id);
}
public static <T> T getBean(Class<T> clz){
return applicationContext.getBean(clz);
}
}