• Spring In Action(第三版)读书笔记


    第一章 Spring之旅

    POJO: plain old java object 简单的java对象

    DI:Dependency Injection 依赖注入

    构造器注入:构造时作为构造器参数传入

    private Quest quest;
    public BraveKnight(Quest quest){
        this.quest = quest;
    }

    其中 Quest是个接口,用以在于实现松耦合

    测试的时候可以使用mock实现。如下:

    Quest mockQuest = mock(Quest.class);
    BraveKnight knight = new BraveKnight(mockQuest);

    装配wiring: 创建组件之间的协作行为.

    XML配置装配

    <bean id="quest" class="test.SlayDragonQuest"/>
    <bean id="knight" class="test.BraveKnight">
        <constructor-arg ref="quest"/>
    </bean>

    通过应用上下文(Application Context)装载Bean的定义

    ApplicationContext context= new ClassPathXmlApplicationContext("knight.xml");
    Knight knight = (Knight) context.getBean("knight");

    AOP: Aspect-oriented Programming 应用切面编程--分离成可重用的组件.

    Spring容器:Bean factories,最简单的容器

    应用上下文:基于Bean factories之上,提供面向应用的服务。

    ClassPathXmlApplicationContext——类路径下的xml文件

    FileSystemXmlApplicationContext——绝对路径下的xml文件

    XmlWebApplicationContext——web应用下的xml文件

    Spring框架(分类比较杂,常见的有如下)

    1. AOP模块

    2. DAO模块(data access object)

    ORM: object-relational mapping 对象关系映射

    把关系型数据库中的关系数据映射成为程序中的对象。

    3. web模块

    4. spring mvc

    *************************************************************************************

    第二章 装配Bean

    构造器注入

    <bean id="duke" class="test.Duke">
        <constructor-arg value="15"/><!-- 注意 如果注入另一个bean,需用 ref, not value-->
    </bean>

    通过工程方法创建bean

    -- 可以把没有公开构造函数的类配置为一个bean

    <bean id="singleton" class="test.Singleton“ factory-method=”getInstance"/>

    Bean的作用域

    singleton    (默认)在每个Spring IoC容器中一个bean定义对应一个对象实例。

    prototype    一个bean定义对应多个对象实例。

    request     在一次HTTP请求中,一个bean定义对应一个实例;即每次HTTP请求将会有各自的bean实例, 它们依据某个bean定义创建而成。该作用域仅在基于web的Spring ApplicationContext 情形下有效。

    session     在一个HTTP Session 中,一个bean定义对应一个实例。该作用域仅在基于web的SpringApplicationContext 情形下有效。

    global-session   在一个全局的HTTP Session 中,一个bean定义对应一个实例。典型情况下,仅在使用portlet context的时候有效。该作用域仅在基于web的Spring ApplicationContext 情形下有效。

  • 相关阅读:
    office365离线安装
    c#使用emit方法DB,实体相互转换
    c#采用emit将DataTable转List
    c#将List转换成DataTable
    c#将List转换成DataTable(采用Emit)
    聊聊编程开发的数据库批量插入(sql)
    c#随便聊聊数据库操作
    c#聊聊文件数据库kv
    WPF几个样式
    c#(IronPython)调用Python方法
  • 原文地址:https://www.cnblogs.com/dorothychai/p/3949339.html
Copyright © 2020-2023  润新知