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

腾讯建设网站视频wordpress教育类主题

腾讯建设网站视频,wordpress教育类主题,网站建设企业网站价格,沈阳seo代理计费Spring 的 IoC 容器是一个提供 IoC 支持的轻量级容器#xff0c;除了基本的 IoC 支持#xff0c;它作为轻量级容器还提供了 IoC 之外的支持。 Spring 提供了两种容器类型#xff1a;BeanFactory 和 ApplicationContext#xff1a; BeanFactory#xff0c;基础类型 IoC 容…Spring 的 IoC 容器是一个提供 IoC 支持的轻量级容器除了基本的 IoC 支持它作为轻量级容器还提供了 IoC 之外的支持。 Spring 提供了两种容器类型BeanFactory 和 ApplicationContext BeanFactory基础类型 IoC 容器提供完整的 IoC 服务支持。如果没有特殊指定默认采用延迟初始化策略lazy-load。所以容器启动初始速度较快。ApplicationContext在 BeanFactory 基础上构建的相对高级的容器实现除了 BeanFactory 的所有支持还提供了其他高级特性如事件发布、国际化信息支持等。 ApplicationContext 所管理的对象在该容器启动之后默认全部初始化并绑定完成。 BeanFactory 肯定会公开一个取得组装完成的对象的方法接口。 public interface BeanFactory {String FACTORY_BEAN_PREFIX ;Object getBean(String name) throws BeansException;Object getBean(String name, Class requiredType) throws BeansException;/*** since 2.5*/Object getBean(String name, Object[] args) throws BeansException;boolean containsBean(String name);boolean isSingleton(String name) throws NoSuchBeanDefinitionException;/*** since 2.0.3*/boolean isPrototype(String name) throws NoSuchBeanDefinitionException;/*** since 2.0.1*/boolean isTypeMatch(String name, Class targetType) throws NoSuchBeanDefinitionException;Class getType(String name) throws NoSuchBeanDefinitionException;String[] getAliases(String name); }4.1 拥有 BeanFactory 之后的生活 之前我们的系统业务对象需要自己去“拉”Pull所依赖的业务对象有了 BeanFactory 之类的 IoC 容器之后需要依赖什么就让 BeanFactory 为我们推过来Push过来就行了。 4.2 BeanFactory 的对象注册与依赖绑定方式 4.2.1 直接编码方式 BeanFactory 接口只定义如何访问容器内管理的 Bean 的方法BeanDefinitionRegistry 才提供 Bean 注册管理的角色。所以 IoC 容器在实现 BeanFactory 的同时还需要实现 BeanDefinitionRegistry。 每个一个受管的对象在容器中都会有一个 BeanDefinition 的实例instance与之相对应该 BeanDefinition 的实例负责保存对象的所有必要信息包括其对应的对象的 class 类型、是否是抽象类、构造方法参数以及其他属性等。当客户端向 BeanFactory 请求相应对象的时候BeanFactory 会通过这些信息为客户端返回一个完备可用的对象实例。 4.2.2 外部配置文件方式 Spring 的 IoC 容器支持两个配置文件格式Properties 文件格式和 XML 文件格式。 通常情况下需要根据不同的外部配置文件格式给出相应的 BeanDefinitionReader 实现类由 BeanDefinitionReader 的相应实现类负责将配置文件内容读取并映射到 BeanDefinition然后将BeanDefinition 注册到一个 BeanDefinitionRegistry之后完成 Bean 的注册和加载。 4.2.3 注解方式 适用于 Spring 2.5 以及 Java 5 或者更高版本。 context:component-scan/会到指定的包 (package)下面扫描标注有Component的类将它们添加到容器进行管理并根据它们所标注的Autowired为这些类注入符合条件的依赖对象。 public static void main(String[] args) {ApplicationContext ctx new ClassPathXmlApplicationContext(配置文件路径);FXNewsProvider newsProvider (FXNewsProvider) ctx.getBean(FXNewsProvider);newsProvider.getAndPersistNews(); }4.3 BeanFactory 的 XML 之旅 4.3.1 和 4.3.2 孤孤单单一个人 4.3.3 Help Me, Help You 4.3.4 继承我也会 bean idsuperNewsProvider class..FXNewsProviderproperty namenewsListenerref beandjNewsListener//propertyproperty namenewPersistenerref beandjNewsPersister//property /bean bean idsubNewsProvider parentsuperNewsProvider class..SpecificFXNewsProviderproperty namenewsListenerref beanspecificNewsListener//property /bean我们在声明 subNewsProvider 的时候使用了 parent 属性将其值指定为 superNewsProvider这样就继承了 superNewsProvider 定义的默认值。 bean idnewsProviderTemplate abstracttrueproperty namenewPersistenerref beandjNewsPersister//property /beanbean idsuperNewsProvider parentnewsProviderTemplate class..FXNewsProviderproperty namenewsListenerref beandjNewsListener//property /beanbean idsubNewsProvider parentnewsProviderTemplate class..SpecificFXNewsProviderproperty namenewsListenerref beanspecificNewsListener//property /beannewsProviderTemplate 的 bean 定义通过 abstract 属性声明为 true说明这个 bean 定义不需要实例化也是可以不指定 class 属性的少数场景之一。 默认情况下ApplicationContext 会在容器启动的时候就对其管理的所有 bean 进行实例化只有标志为 abstract 的 bean 除外。 4.3.5 bean 的 scope scope 用来场景容器中的对象所应该处的限定场景或者说该对象的存活时间即容器在对象进入其相应的 scope 之前生成并装配这些对象在该对象不再处于这些 scope 的限定之后容器通常会销毁这些对象。 singleton默认 scope标记为 singleton 的 bean 对象在容器中只存在一个实例所有对该对象的引用将共享这个实例。该实例从容器启动并因为第一次被请求而初始化之后将一直存活到容器退出也就是说它与 IoC 容器“几乎”拥有相同的“寿命”。prototype对于标记为 prototype 的 bean 对象容器在接到该类型对象的请求的时候每次都会重新生成一个新的对象实例给请求方。之后容器便不再拥有当前返回对象的引用任由其“自生自灭”。request、session 和 global session只适用于 Web 应用程序。自定义 scope 实现 org.springframework.beans.factory.config.Scope 接口。 4.3.6 工厂方法与 FacatoryBean 4.4 容器背后的秘密 4.4.1 “战略性观望” 1. 容器启动阶段 容器启动伊始首先会通过某种途径加载 Configuration MetaData。除了代码方式比较直接在大部分情况下容器需要依赖某些工具类BeanDefinitionReader对加载的 Configuration MetaData 进行解析和分析并将分析后的信息编组为相应的 BeanDefinition。最后把这些保存了 bean 定义必要信息的 BeanDefinition注册到相应的 BeanDefinitionRegistry这样容器启动工作就完成了。 2. Bean 实例化阶段 经过第一阶段现在所有的 bean 定义信息都通过 BeanDefinition 的方式注册到了 BeanDefinitionRegistry 中。当某个请求方通过容器的 getBean 方法明确地请求某个对象或者因依赖关系容器需要隐式地调用 getBean 方法时就会触发第二阶段的活动。 该阶段容器会首先检查所请求的对象之前是否已经初始化。如果没有则会根据注册的BeanDefinition所提供的信息实例化被请求对象并为其注入依赖。如果该对象实现了某些回调接口也会根据回调接口的要求来装配它。当该对象装配完毕之后容器会立即将其返回请求方使用。 4.4.2 插手“容器的启动” BeanFactoryPostProcessor允许我们在容器实例化相应对象之前对注册到容器的 BeanDefinition 所保存的信息做相应的修改。 4.4.3 了解 bean 的一生 1. Bean 的实例化 与 BeanWrapper 容器在内部实现时采用“策略模式Strategy Pattern”来决定采用何种方式初始化 bean 实例。通常可以通过反向或者 CGLIB 动态字节码生成来初始化相应的 bean 实例或者动态生成其子类。默认采用 CglibSubclassingInstantiationStrategy 生成对象经过“点缀”过的 BeanWrapper 实例。 2. 各色的 Aware 接口 当对象实例化完成并且相关属性以及依赖设置完成之后Spring 容器会检查当前对象实例是否实现了一系列的以 Aware 命令结尾的接口定义。如果是则将这些 Aware 接口定义中规定的依赖注入给当前对象实例。 3. BeanPostProcessor BeanPostProcessor 会处理容器内所有符合条件的实例化后的对象实例。 4. 自定义 BeanPostProcessor 5. InitializingBean 和 init-method 6. DisposableBean 与 destory-method 4.5 小结
http://www.dnsts.com.cn/news/223783.html

相关文章:

  • 网站推广方案200字深圳龙岗网站开发
  • 微信制作宣传网站有哪些网站上怎么做产品介绍
  • 宠物主题网站模板机构改革网站建设
  • 外贸 网站设计公司网站建设技术团队有多重要
  • 福建做网站公司大气网站模板
  • 织梦做的网站首页幻灯片怎么不能显示常州公司建站模板
  • 金湖网站推广做网站可能遇到的困难
  • 外贸网站搭建用哪个平台比较好网络营销的12种手段
  • 黄埔网站建设(信科网络)网站备案一般需要多久
  • 南京快速建设企业网站wordpress支付宝捐赠插件
  • 青海建设网站价格低如何手机网站建立
  • 移动手机网站建设想开个网站做外贸怎么做
  • html5 网站搭建广州番禺网站推广
  • 高密专业网站建设价格对门户网站建设情况的报告
  • 做热处理工艺的网站有哪些wordpress网站导入数据库
  • 网站优化策略分析营销网站制作皆选ls15227负责
  • 网站做装修效果图运维工程师主要做什么
  • wordpress建好站了打不开首页模板下载网站什么好
  • 网站开发心得西安建筑公司网站建设
  • 衡水稳定的网络建站微信开发者版是什么意思
  • 基础展示营销型型网站自己画户型图的app
  • 2.2 网站建设的流程江门网站制作套餐
  • 建设银行购物网站济南网站建设方案案例展示
  • 私人pk赛车网站怎么做搜索引擎优化排名品牌
  • 企业网站小程序源码站长统计app软件下载
  • 东莞人才网官方网站Python做网站 性能
  • pc 网站开发设计郑州做网站好的公司
  • 龙岗网站改版做一个app软件大概要多少钱
  • 凡科网站建设样品图凡客网上商城
  • 如何建立自己的网站平台个人网站首页导航栏ps制作教程