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

个人网站企业网站建投商务网登录

个人网站企业网站,建投商务网登录,知名网站建设企业,产品设计经典案例ApplicationContext 和 BeanFactory 是 Spring 框架中两个核心的接口#xff0c;它们都用于管理和访问 Spring 容器中的 Bean#xff0c;但在功能和使用场景上有显著的区别。以下是它们的详细对比#xff0c;并结合源码进行讲解。 一、 功能对比 特性BeanFactoryApplicati…ApplicationContext 和 BeanFactory 是 Spring 框架中两个核心的接口它们都用于管理和访问 Spring 容器中的 Bean但在功能和使用场景上有显著的区别。以下是它们的详细对比并结合源码进行讲解。 一、 功能对比 特性BeanFactoryApplicationContextBean 管理支持基本的 Bean 管理和依赖注入。支持 BeanFactory 的所有功能并扩展了更多特性。事件发布不支持。支持事件发布机制ApplicationEvent。国际化支持不支持。支持国际化MessageSource。资源访问不支持。支持资源访问ResourceLoader。AOP 支持不支持。支持 AOP面向切面编程。注解支持不支持。支持注解配置如 Component、Autowired。加载时机懒加载Lazy Loading。预加载Eager Loading启动时初始化所有单例 Bean。使用场景适合资源受限的环境如移动设备。适合大多数企业级应用。 二、源码讲解 1、BeanFactory源码 BeanFactory是Spring容器的最基本接口定义了Bean的获取和管理方法 public interface BeanFactory {// 获取 BeanObject getBean(String name) throws BeansException; ​// 获取指定类型的 BeanT T getBean(String name, ClassT requiredType) throws BeansException; ​// 判断是否包含指定名称的 Beanboolean containsBean(String name); ​// 判断 Bean 是否为单例boolean isSingleton(String name) throws NoSuchBeanDefinitionException; ​// 判断 Bean 是否为原型boolean isPrototype(String name) throws NoSuchBeanDefinitionException; ​// 获取 Bean 的类型Class? getType(String name) throws NoSuchBeanDefinitionException; ​// 获取 Bean 的别名String[] getAliases(String name); } 特点 BeanFactory是一个简单的容器接口只提供最基本的Bean管理功能 默认适用懒加载Lazy Loading机制只有在调用getBean时才会初始化Bean 2、ApplicationContext 源码 ApplicationContext是 BeanFactory 的子接口扩展了更多功能。 public interface ApplicationContext extends EnvironmentCapable, ListableBeanFactory, HierarchicalBeanFactory,MessageSource, ApplicationEventPublisher, ResourcePatternResolver { ​// 获取容器的唯一 IDString getId(); ​// 获取容器的显示名称String getDisplayName(); ​// 获取容器的启动时间long getStartupDate(); ​// 获取父容器ApplicationContext getParent(); ​// 获取 AutowireCapableBeanFactoryAutowireCapableBeanFactory getAutowireCapableBeanFactory() throws IllegalStateException; } 扩展功能 事件发布 void publishEvent(ApplicationEvent event); 支持事情驱动变成可以通过ApplicationEventPublisher发布事件 国际化支持 String getMessage(String code, Object[] args, String defaultMessage, Locale locale); 支持通过MessageSource实现国际化 资源访问 Resource[] getResources(String locationPattern) throws IOException; 支持通过ResourceLoader访问资源文件 AOP支持 通过集成AOP模块支持面向切面编程 注解支持 支持通过注解如Component、Autowired配置Bean 特点 ApplicationContext 是一个高级容器接口提供了更多企业级功能。 默认采用预加载Eager Loading机制启动时初始化所有单例 Bean。 三、具体实现类 1、BeanFactory 的实现类 DefaultListableBeanFactory 是BeanFactory的默认实现类提供了完整的Bean管理功能 源码示例 DefaultListableBeanFactory beanFactory new DefaultListableBeanFactory(); XmlBeanDefinitionReader reader new XmlBeanDefinitionReader(beanFactory); reader.loadBeanDefinitions(new ClassPathResource(beans.xml)); MyBean myBean beanFactory.getBean(MyBean.class); 这里就是在Resources下beans.xml这个文件约定大于配置 2、ApplicationContext的实现类 ClassPathXmlApplicationContext 从类路径加载 XML 配置文件的 ApplicationContext实现。 源码示例 ApplicationContext context new ClassPathXmlApplicationContext(beans.xml); MyBean myBean context.getBean(MyBean.class); AnnotationConfigApplicationContext 基于注解配置的ApplicationContext实现 源码示例 ApplicationContext context new AnnotationConfigApplicationContext(AppConfig.class); MyBean myBean context.getBean(MyBean.class); AppConfig注解类 FileSystemXmlApplicationContext 用于读取系统文件目中的配置文件 四、 使用场景 BeanFactory 适合资源受限的环境如移动设备。 需要手动调用 getBean() 初始化 Bean。 ApplicationContext 适合大多数企业级应用。 提供更多高级功能如事件发布、国际化、AOP 等。 五、 总结 BeanFactory 是 Spring 容器的基础接口提供最基本的 Bean 管理功能。 ApplicationContext 是 BeanFactory 的扩展提供了更多企业级功能。 在实际开发中通常使用 ApplicationContext因为它功能更强大使用更方便。 通过理解 BeanFactory 和 ApplicationContext 的区别和源码实现可以更好地掌握 Spring 容器的核心机制。
http://www.hkea.cn/news/14285328/

相关文章:

  • iis做网站的流程美图在线图片编辑器
  • 做网站怎么开发程序南京网站费用网站建设
  • 个人网站建设研究意义百度问问
  • 网站备案管理系统登录不上去北京工程建设交易信息网官网
  • 网站建设流程文字稿南京网站建设开发公司
  • 分类门户网站开发团队做暧暧网站在线
  • 河北石家庄建设网站西安房产网签查询系统
  • 我想做个门户网站怎么做高端网站设计制作
  • 模板建站的网站小程序商城有哪些平台
  • 云南网站制作价格怎么利用国外网站做互联网挣钱
  • 石家庄建站网站怎么做优化步骤
  • 网站访问找不到域名怎么回事郑州网站技术顾问
  • 上海市建设资格注册中心网站长沙学校网站建设
  • 安福网站建设简洁大方的网站首页
  • 广西住房和城乡建设网站视频专栏海口模板网站建站
  • 网站建设的风格设置网站好玩代码和特效
  • 网站备案 怎么加爬虫网站开发
  • 我公司是帮企业做网站的_现在要帮客户们的网站备案安康seo
  • 建设拍卖网站网站标题乱码
  • 微网站做的比较好wordpress模板推荐
  • 域名对行业网站的作用平面设计案例网站
  • 哪个企业做网站怎样推荐企业建设网站和互联网推广
  • 广州比较好的网站设计企业公众号以及网站建设
  • 做卷闸门网站有用吗网站 内容 营销
  • 摄影网站开发意义可以做设计私单的网站
  • 男男床做视频网站微信推广员
  • 毕设做网站什么主题比较好注册商标查询是否已被注册
  • gta5买房子网站建设wordpress怎么修改栏目标题
  • wordpress 图片站主题企业站网络推广
  • 创造与魔法官网站_一起做喜欢的事知名门户网站