Spring实现原理

Spring 实现原理
一、 Spring核心I/O以及AOP
     1. Spring出现原因及目标
        之前EJB的J2EE服务对代码有侵入性,使得开发与测试都比较困难;
        而Spring则将J2EE的服务抽象出来,通过Ioc以及AOP来添加这些服务,一方面普通的业务POJO类更容易开发和测试,另一方面用则添加的模式也减少了框架复杂性;
        
    2. Resource,ResourceLoader(BeanDefinitionReader),BeanDefinition,BeanDefinitionRegistry,BeanFactory,ApplicationContext,FactoryBean关系
       1)通过Resource接口定位不同的资源文件,如classpath,file,url等;
       2)通过ResourceLoader(BeanDefinitionReader)来加载,解析资源文件,从而产生Bean定义对象BeanDefinition;
       3)向BenaFactory中注册BeanDefinition对象;
       4)BeanFactory对象产生FactoryBean对象,并根据BeanDefinition的配置指导FactoryBean产生通用的Bean;
       而ApplicationContext相当于Facade外观模式,整合常用的Resource,ResourceLoader,BeanFactory,BeanDefinition,同时会标识应用环境,捕获各种事件等;

    3. Spring中获取对象工厂的方法:
       1)初始化ApplicationContext对象    
          代码:
             ApplicationContext ac = new FileSystemXmlApplicationContext("applicationContext.xml");
              ac.getBean("beanId");
          适用于独立的应用程序,而非B/S程序,因为其是一个独立的容器,得到的是一个新的对象,而B/S中通常需要的是应用程序中的相同对象;
       2)通过Spring提供的工具类获取ApplicationContext对象
          代码:
             ApplicationContext ac1 = WebApplicationContextUtils.getRequiredWebApplicationContext(ServletContext sc);
             ac1.getBean("beanId");
          适用于Action层,因为其需要获取到ServletContext对象;
       3)继承自抽象类ApplicationObjectSupport
          抽象类ApplicationObjectSupport提供getApplicationContext()方法,可以方便的获取到ApplicationContext。
      
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值