Spring学习笔记(二)-----Spring in Action

Spring学习笔记(二)-----Spring in Action
    Spring的所有模块都是建立在核心容器之上的。容器规定如何创建和配置Bean,以及很多Spring的具体细节。
    核心容器:Spring核心容器为Spring框架提供了基础功能。在这个模块中你会找到BeanFactory,它是所有基于Spring框架系统的核心。BeanFactory采用工厂模式来实现IOC,它将系统的配置和依赖关系从代码中独立出来。
    Application Context模块
    上下文模块是使Spring成为框架的原因。这个模块扩展了BeanFactory.这个模块提供了很多企业级服务如电子邮件服务、JNDI访问、EJB继承、远程调用以及定时服务,并且支持与模板框架的集成。
    Spring的AOP模块
    在AOP模块中,Spring对面向切面提供了丰富的支持。这个模块是为Spring应用系统开发切面的基础。
    JDBC抽象及DAO模块
    Spring的JDBC和DAO模块把这些样板式的代码抽象出来,让你的数据库代码变得简单明了。
    O/R映射集成模块
    Spring不想实现自己的ORM解决方案,但是它为许多流行的ORM框架做了钩子程序,包括Hibernate、JDO和iBatis映射,Spring的事务管理支持所有这些ORM框架以及JDBC.
    Spring的web模块
    web上下文模块建立在应用上下文模块的基础之上,提供了适合web系统的上下文。
    Spring MVC框架
    Spring为web系统提供了全功能的MVC框架。
    应用:
    使用<property>元素表示设置属性值。使用<constructor-arg>元素表示通过构造方法设置参数
    public class HelloApp{
      public static void main(String[] args)throws Exception{
        BeanFactory factory = new XmlBeanFactory(new FileInputStream("hello.xml"));
        GreetingService greetingService = (GreetingService)factory.getBean("greetingSercice");
        greetingService.sayGreeting();
      }
    }
    这里的BeanFactory就是Spring容器。将hello.xml文件载入容器后,main()方法调用BeanFactory的getBean()方法来得到问候服务的引用。
    反向控制:控制的什么方面被反转了,获得依赖对象的方式反转了。
    依赖注入:任何重要的系统都需要至少2个相互合作的类来完成业务逻辑,通常,每个对象都要自己负责得到它的合作(依赖)对象。你会发现,这样会导致代码耦合度高而且难以测试。
    使用IOC,对象的依赖都是在对象创建时由负责协调系统中各个对象的外部实体提供的。
    耦合是一个双头怪物,一方面,紧密耦合的代码难以测试,难以重用,难以理解,带来典型的摧毁大堤bug.另一方面,完全没有耦合的代码什么也做不了。为了做一些有意义的工作,类必须以某种方式知道其他类的存在。耦合是必须的,但需要小心管理。
    减少耦合的一个通常的做法就是将具体实现隐藏在接口下面,这样具体实现类的替换不会影响到引用类。

你可能感兴趣的:(Spring学习笔记(二)-----Spring in Action)