Spring入门笔记

 
    Spring 集成框架

    由7个模块组件构成,构建在核心容器上:

    Spring AOP   Spring ORM   Spring Web   Spring WebMVC  Spring DAO   Spring Context

                    Spring Core

    其分层架构特点允许选择使用一个或多个组件

    Spring Core:组件BeanFactory工厂模式的实现,通过控制反转机制,将应用程序配置与程序代码分开

    Spring Context:提供上下文信息

    Spring AOP:提供事务管理服务

    Spring DAO:提供异常层次结构,管理异常处理和错误信息

    Spring ORM:提供ORM对象关系工具,包括Hibernate、iBatis、遵从Spring通用事务和异常层次结构

    Spring Web:基于Web提供Context上下文,处理多份请求和绑定域对象

    Spring Web MVC:全功能构建Web应用程序的MVC实现。

    Sping理念:不取代已有的框架,而与它们无缝地整合,旨在提供一个集成的容器(框架)。

    Spring核心机制——依赖注入(Dependency Inversion),也称为控制反转,指在运行过程中,如果需要

    调用另一个对象协助时,不需要创建被调用者的实例而是依赖于外部的注入。

    依赖注入有两种方式:设置注入(setter方法)、构造注入(构造器注入)

    设置注入:
        
    <!-- Human接口类,Chinese实现类 -->

    <bean id="chinese" class="com.Chinses">

        <!-- lan为Chinses的Languge对象属性 -->

        <property name="lan" ref="english"></property>

    </bean>

    <!-- Language接口类,English实现类 -->

    <bean id="english" class="com.English">

    调用:

    ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml");

    Human human=(Human)ctx.getBean("chinese");

    构造注入:

    public Chinese(Language lan){
        this.lan=lan;
    }

    <bean id="chinese" class="com.Chinses">

        <constructor-arg ref="english"></constructor-arg>

    </bean>

    <bean id="english" class="com.English">

    依赖注入先是创建一个默认的Bean实例,然后调用对应的set方法注入依赖关系,而构造注入则在构造

    Bean实例时就完成了依赖关系的注入

    Spring核心接口:BeanFactory(Bean工厂)、ApplicationContext(应用上下文,是BeanFactory的子接口)

    两者都是载入Bean定义信息,装配Bean,分发Bean。

    BeanFactory:工厂设计模式,负责创建分发各种类型的Bean。其常用实现类XmlBeanFactory,须传递

    一个java.io.InoutStream对象给构造函数,由InputStream对象提供Xml文件给工厂

    BeanFactory factory=new XmlBeanFactory(new FileSystemStream("applicationContext.xml"));

    但调用getBean()方法时,工厂实例化Bean,依赖注入设置属性值

    ApplicationContext提供了很多BeanFactory没有的子功能:

    1、提供国际化功能

    2、提供载入文本资源通用方法,如图片

    3、可以向注册为监听器的Bean发送事件

    ApplicationContext常用三个实现类:

    1、ClassPathXmlApplicationContext:从类路径中载入XML文件定义信息

    2、FileSystemXmlApplicationContext:从文件系统的XML中载入

    3、XmlWebApplicationContext:从Web系统中的XML载入

    ApplicationContext context=new ClassPathXmlApplicationContext("foo.xml");

    ApplicationContext context=new FileSystemXmlApplicationContext("c:/foo.xml");

    ApplicationContext context=new WebApplicationContextUtils.getWebApplicationContext(

    request.getSession().getServletContext());

    BeanFactory会延迟载入所有的Bean,直到getBean()被调用

    而ApplicationContext则会预载所有的单实例Bean,应用程序不需要等待

    Bean装配:容器根据依赖注入将Bean配合起来

    <bean id="foo" class="com.spring.Foo">通过id值来获取Bean

    指定Bean作用域:

    单实例模式:分配Bean时,总是返回同一个Bean实例

    原型模式:请求一个Bean时,得到一个不同的实例    //<bean id="" class="" singleton="false">

    request/session:每次Http请求或HttpSession请求将会产生不同的Bean实例,只有在Web应用中有效

    global session:每个全局的HttpSession对应一个Bean实例

    Spring AOP 略


 

猜你喜欢

转载自blog.csdn.net/zero_130/article/details/81213352