初识BeanFactory
初识BeanFactory
作用:用来生产Bean的。
beanFactory是一个接口,他有很多实现,功能非常强大。
public interface BeanFactory { String FACTORY_BEAN_PREFIX = "&"; Object getBean(String var1) throws BeansException; <T> T getBean(String var1, Class<T> var2) throws BeansException; Object getBean(String var1, Object... var2) throws BeansException; <T> T getBean(Class<T> var1) throws BeansException; <T> T getBean(Class<T> var1, Object... var2) throws BeansException; boolean containsBean(String var1); boolean isSingleton(String var1) throws NoSuchBeanDefinitionException; boolean isPrototype(String var1) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String var1, ResolvableType var2) throws NoSuchBeanDefinitionException; boolean isTypeMatch(String var1, Class<?> var2) throws NoSuchBeanDefinitionException; Class<?> getType(String var1) throws NoSuchBeanDefinitionException; String[] getAliases(String var1); }
生成bean的方式很多,但是beanFactory是一个容器,里面存的应该是BeanDefinition和对象
public class Main { public static void main(String[] args) { DefaultListableBeanFactory beanFactory = new DefaultListableBeanFactory(); //方式一:先进行注册 才能获取到bean beanFactory.registerSingleton("user",new User());//对象 //方式二:通过BeanDefinition注册,再获取bean AbstractBeanDefinition beanDefinition = BeanDefinitionBuilder.genericBeanDefinition().getBeanDefinition(); beanDefinition.setBeanClass(User.class); beanFactory.registerBeanDefinition("user",beanDefinition);//beanDefinition User user = beanFactory.getBean("user",User.class); } }
浙公网安备 33010602011771号