当前位置: 首页 > news >正文

内部优惠券网站建站网站搭建费用明细

内部优惠券网站建站,网站搭建费用明细,公司运营是做什么的,电商设计网站有哪些功能模块先介绍一下Spring的IOC容器到底是个什么东西#xff0c;都说是一个控制反转的容器#xff0c;将对象的控制权交给IOC容器#xff0c;其实在看了源代码之后#xff0c;就会发现IOC容器只是一个存储单例的一个ConcurrentHashMapString, BeanDefinition BeanDefiniti…先介绍一下Spring的IOC容器到底是个什么东西都说是一个控制反转的容器将对象的控制权交给IOC容器其实在看了源代码之后就会发现IOC容器只是一个存储单例的一个ConcurrentHashMapString, BeanDefinition BeanDefinition只是一个将Object包装的对象带有实例的其他属性比如对应的Class等而Spring默认创建的IOC容器为new DefaultListableBeanFactory()可以看一下这个对象的属性 /** Map from serialized id to factory instance. */private static final MapString, ReferenceDefaultListableBeanFactory serializableFactories new ConcurrentHashMap(8);/** Optional id for this factory, for serialization purposes. */Nullableprivate String serializationId;/** Whether to allow re-registration of a different definition with the same name. */private boolean allowBeanDefinitionOverriding true;/** Whether to allow eager class loading even for lazy-init beans. */private boolean allowEagerClassLoading true;/** Optional OrderComparator for dependency Lists and arrays. */Nullableprivate ComparatorObject dependencyComparator;/** Resolver to use for checking if a bean definition is an autowire candidate. */private AutowireCandidateResolver autowireCandidateResolver new SimpleAutowireCandidateResolver();/** Map from dependency type to corresponding autowired value. */private final MapClass?, Object resolvableDependencies new ConcurrentHashMap(16);//这个Map就是专门储存实例的/** Map of bean definition objects, keyed by bean name. */private final MapString, BeanDefinition beanDefinitionMap new ConcurrentHashMap(256);/** Map of singleton and non-singleton bean names, keyed by dependency type. */private final MapClass?, String[] allBeanNamesByType new ConcurrentHashMap(64);/** Map of singleton-only bean names, keyed by dependency type. */private final MapClass?, String[] singletonBeanNamesByType new ConcurrentHashMap(64);/** List of bean definition names, in registration order. */private volatile ListString beanDefinitionNames new ArrayList(256);/** List of names of manually registered singletons, in registration order. */private volatile SetString manualSingletonNames new LinkedHashSet(16);/** Cached array of bean definition names in case of frozen configuration. */Nullableprivate volatile String[] frozenBeanDefinitionNames;/** Whether bean definition metadata may be cached for all beans. */private volatile boolean configurationFrozen false;而DefaultListableBeanFactory继承了BeanFactory的接口并实现的这些方法。 BeanFactory BeanFactory是Spring最核心的接口也是Spring中最开始的地方这个接口定义了一些常用的方法也标明了常用方法的定义 public interface BeanFactory {/*** Used to dereference a {link FactoryBean} instance and distinguish it from* beans icreated/i by the FactoryBean. For example, if the bean named* {code myJndiObject} is a FactoryBean, getting {code myJndiObject}* will return the factory, not the instance returned by the factory.*/String FACTORY_BEAN_PREFIX ;//key值获取实例也叫按bean的名称或ID获取对应的实例Object getBean(String name) throws BeansException;//按bean名称以及对应的class获取实例T T getBean(String name, ClassT requiredType) throws BeansException;Object getBean(String name, Object... args) throws BeansException;//按class类型获取bean实例T T getBean(ClassT requiredType) throws BeansException;T T getBean(ClassT requiredType, Object... args) throws BeansException;T ObjectProviderT getBeanProvider(ClassT requiredType);T ObjectProviderT getBeanProvider(ResolvableType requiredType);//判断是否有对应的bean名称boolean containsBean(String name);//判断对应的bean名称是否为单例boolean isSingleton(String name) throws NoSuchBeanDefinitionException;//判断对应的bean名称是否为多例boolean isPrototype(String name) throws NoSuchBeanDefinitionException;boolean isTypeMatch(String name, ResolvableType typeToMatch) throws NoSuchBeanDefinitionException;boolean isTypeMatch(String name, Class? typeToMatch) throws NoSuchBeanDefinitionException;//按bean名称获取对应的classNullableClass? getType(String name) throws NoSuchBeanDefinitionException;String[] getAliases(String name);} 不过这里面有个常量FACTORY_BEAN_PREFIX这个跟FactoryBean有关。 FactoryBean 也是注入Bean实现的一种方法先看一下这个接口 public interface FactoryBeanT {//获取对象NullableT getObject() throws Exception;//获取对象对应的classNullableClass? getObjectType();//是否为单例默认为是default boolean isSingleton() {return true;}} 用法是实现这个接口并且注入到Spring的IOC容器当中示例 Component public class SpringTest03FactoryBean implements FactoryBeanFish {public Fish getObject() throws Exception {return new Fish();}public Class? getObjectType() {return Fish.class;}public boolean isSingleton() {return true;}} 当时在从容器中取这个对应的bean名称的时候确实返回getObject()中返回的对象但是如果需要获取这个FactoryBean的对象的话需在bean名称前面加个才能获取到对应的FactoryBean实现类的实例 这个看起来用的不多但是在Mybatis和Spring的融合包中能够看到FactoryBean的身影是专门将动态代理的dao接口注入到Spring的容器当中这个后面再说 接下来看看在Spring源码中是在哪里处理了这个符号 在Spring加载FactoryBean的时候仅仅是将它当作一个普通的Bean注入 而在getBean的时候就会有区分 在AbstractBeanFactory的1658行如果带有则直接返回FactoryBean的实例 否则接着往下走 直接获取 factoryBeanObjectCache 对应的key值没有话会先加载到factoryBeanObjectCache  这两种其实是两个不同的类只是名字看着看不多而已
http://www.yutouwan.com/news/151197/

相关文章:

  • 中山网站建设文化咨询供求信息网站建设报价
  • 设计的网站怎么添加域名深圳东莞网站建设
  • 怎样在百度上建立网站wordpress建导航
  • 河间市网站建设价格佛山外贸网站建设报价
  • 网络小说网站推广策划方案怎么搭建论坛
  • 网站建设的心得与体会网站建设敬请期待图片素材
  • 凡科网h5lnmp wordpress优化
  • 企业自己做网站工作站做网站
  • h5做网站什么软件广元网站设计
  • 网站建设服务支持泉州做网站优化的公司
  • 学建设网站首页wordpress 分页个数
  • 企业网站的建设与流程做网站为何要续费
  • 语言文字建设网站长春火车站
  • 动态海报网站什么叫网站流量
  • 姑苏区住房建设局网站土建找工作去哪个网站
  • 网站违规关键词禁止搜索引擎收录的方法
  • 怎样做集装箱网站一篇网站设计小结
  • 网站 备案信息浙江网上职工之家
  • wordpress群站域名品牌加盟网
  • 中国铁路建设工程招标网站企业文化vi设计
  • 模板wordpress演示站怎么做如何做旅游网站的旅行家
  • wordpress网站演示wordpress 搜索结果
  • 网站建设收费标准策划wordpress文章 公众号
  • 公司网站开发策划深圳东门市场
  • 网站建设 风险说明江苏提升关键词排名收费
  • 郑州百度seo网站优网站的图片怎么做
  • 浙江广厦建设职业技术学院招生网站html登录注册页面代码
  • wordpress标题字体太大seo推广教程视频
  • 手机网站域名解析怎么做上海网站备案在哪里查询
  • 制作网站首先做的工作机械加工网外协