当前位置: 首页 > 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://wiki.neutronadmin.com/news/151197/

相关文章:

  • 合肥做企业网站的网络公司展示型网站 数据库
  • 网站的ftp地址是什么制作简历的免费网站
  • 网站域名怎么取无锡画室网站建设
  • 哪些网站可以做直播小程序外包公司哪家好
  • php婚庆网站源码软件开发学什么专业好
  • 哪里有免费的网站模板下载 迅雷下载 迅雷下载软件如何向百度提交网站地图
  • 网站编程软件有哪些做网站用什么开发好
  • 湘潭网站建设出色磐石网络网站会员系统方案
  • 微信商城网站方案网站仿制
  • 济南行知网站建设做响应式网站最大宽度
  • 网站平台建设服务承诺书黄山旅游攻略必去景点
  • 网站开发人员职责网站建设的市场定位
  • 360网站托管西安网络科技公司
  • 网站根目录表示在线医疗 网站建设
  • 小企业网站免费建设湛江做网站开发
  • 做片头 网站wordpress如何去除分类
  • 做一个响应式网站价格婚庆租车
  • 洛阳洛龙区网站建设推广手段和渠道有哪些
  • 武强营销型网站建设费用沈阳行业网站建设
  • 湛江cms建站wordpress的自定义菜单图标
  • 个人网站不备案wordpress网站部署
  • 一 网站建设的目的与意义新型互联网项目代理
  • 汽车网站建设论文关于网站建设心得体会
  • 网站首页怎么制作wordpress post date
  • 建设管理部门网站查询推广普通话的意义简短
  • 哪里有网站开发企业地情网站建设
  • 腾飞网站建设网站建设程序结构
  • 广元市建设银行网站wordpress统计分类数量
  • 大学网站建设管理办法信息化看网站的关键词
  • 婚礼网站有哪些贵州城乡建设部网站