BeanDefinition基础信息讲解
publicclassBeanDefinitionHolderimplementsBeanMetadataElement{ privatefinalBeanDefinitionbeanDefinition; privatefinalStringbeanName;//beanID @Nullable privatefinalString[]aliases;//Bean的别名数组 }
publicinterfaceBeanDefinitionextendsAttributeAccessor,BeanMetadataElement{ //我们可以看到,默认只提供sington和prototype两种, //很多读者可能知道还有request,session,globalSession,application,websocket这几种, //不过,它们属于基于web的扩展。 StringSCOPE_SINGLETON=ConfigurableBeanFactory.SCOPE_SINGLETON; StringSCOPE_PROTOTYPE=ConfigurableBeanFactory.SCOPE_PROTOTYPE; //比较不重要,直接跳过吧 intROLE_APPLICATION=0; intROLE_SUPPORT=1; intROLE_INFRASTRUCTURE=2; //设置父Bean,这里涉及到bean继承,不是java继承。请参见附录的详细介绍 //一句话就是:继承父Bean的配置信息而已 voidsetParentName(StringparentName); //获取父Bean StringgetParentName(); //设置Bean的类名称,将来是要通过反射来生成实例的 voidsetBeanClassName(StringbeanClassName); //获取Bean的类名称 StringgetBeanClassName(); //设置bean的scope voidsetScope(Stringscope); StringgetScope(); //设置是否懒加载 voidsetLazyInit(booleanlazyInit); booleanisLazyInit(); //设置该Bean依赖的所有的Bean,注意,这里的依赖不是指属性依赖(如@Autowire标记的), //是depends-on=""属性设置的值。 voidsetDependsOn(String...dependsOn); //返回该Bean的所有依赖 String[]getDependsOn(); //设置该Bean是否可以注入到其他Bean中,只对根据类型注入有效, //如果根据名称注入,即使这边设置了false,也是可以的 voidsetAutowireCandidate(booleanautowireCandidate); //该Bean是否可以注入到其他Bean中 booleanisAutowireCandidate(); //主要的。同一接口的多个实现,如果不指定名字的话,Spring会优先选择设置primary为true的bean voidsetPrimary(booleanprimary); //是否是primary的 booleanisPrimary(); //如果该Bean采用工厂方法生成,指定工厂名称。对工厂不熟悉的读者,请参加附录 //一句话就是:有些实例不是用反射生成的,而是用工厂模式生成的 voidsetFactoryBeanName(StringfactoryBeanName); //获取工厂名称 StringgetFactoryBeanName(); //指定工厂类中的工厂方法名称 voidsetFactoryMethodName(StringfactoryMethodName); //获取工厂类中的工厂方法名称 StringgetFactoryMethodName(); //构造器参数 ConstructorArgumentValuesgetConstructorArgumentValues(); //Bean中的属性值,后面给bean注入属性值的时候会说到 MutablePropertyValuesgetPropertyValues(); //是否singleton booleanisSingleton(); //是否prototype booleanisPrototype(); //如果这个Bean是被设置为abstract,那么不能实例化, //常用于作为父bean用于继承,其实也很少用...... booleanisAbstract(); intgetRole(); StringgetDescription(); StringgetResourceDescription();
publicinterfaceAttributeAccessor{ //设置类属性 voidsetAttribute(Stringvar1,@NullableObjectvar2); @Nullable ObjectgetAttribute(Stringvar1); @Nullable ObjectremoveAttribute(Stringvar1); //是否拥有类属性 booleanhasAttribute(Stringvar1); //获取所有类属性名 String[]attributeNames(); }
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对毛票票的支持。如果你想了解更多相关内容请查看下面相关链接