zoukankan      html  css  js  c++  java
  • 笔记Spring in action

    第一部分 Spring 的核心

    Spring 的主要特性是依赖注入(DI)和面向切面编程(AOP)

    第一章 开始Spring 之旅

    javabeans 为JAVA定义了软件组件模型。这个规范规定了一系列的编码规范,这使简单的java对象可以被重用,并且很容易就组成比较复杂的应用。

    但复杂的应用往往是一些服务,如事物支持、安全、分布计算等,这些服务是javabeans 无法直接提供的。

    目前,EJB已经能够提供基于POJO(plain old java object)的编程模型,其利用了像DI和AOP那样的思想,使得最新的EJB规范要比前者简化很多。负责轻量级POJO 开发就是spring 框架。

    1.1

    Spring是一个轻量级的DI和AOP 容器框架:

    轻量级

    依赖注入(DI)对象是被动接收依赖类而不是自己主动去找:对象不是从容器中查找它的依赖类,而是容器在事例化对象的时候主动将它的依赖类注入给它

    面向切面:通过将业务逻辑从应用服务(如监控和事物管理)中分离出来,实现了内聚开发。应用对象只做——业务逻辑,它们不负责系统问题(如日志和事物支持)

    容器——因为它包含并且管理应用对象的生命周期和配置。

    框架:实现了使用简单的组件配置组合成一个复杂的应用。应用对象是通过xml 文件配置组合起来的。

    Spring 模块

    由7个模块组成。

    1)核心容器:规定如何创建、配置和管理Bean以及很多Spring的具体细节。找到BeanFactory 类,它是最基本的spring容器和spring 的di 所依赖的基础。

    2)Application Context模块

    使Spring成为框架,提供了很多企业级服务,如电子邮件服务,JNDI 访问,EJB集成,远程调用以及定时服务,并且支持与模板框架的集成。

    3)AOP模块

    为了Spring 应用开发切面的基础,与DI 一样,AOP支持应用对象之间的松耦合

    4)JDBC抽象及DAO模块

    让数据库代码简单明了;还建立了一个容易理解的数据库异常层。

    5)ORM(object-relational mapping)映射集成模块

     建立在DAO的支持之上,并可以方便地构建适合几个ORM解决方案的DAO.Spring 不想实现自己的ORM解决方案,但是它为许多流行的ORM 框架做了钩子程序,包括Hibernate,java persistence API,JDO和iBATIS SQL映射。

    6)java 管理扩展(JMX)

    如何方便地展现java应用的内在工作流程以便于管理。

    7)java EE连接器API(JCA)

    8)MVC框架

    9)Portlet MVC

    10) WEB 模块

    11)远程调用

    12)消息服务(JMS)

     1.2开始Spring之旅

    依赖注入(DI)是Spring所做的基本的事情。

    <beans>是任何Spring配置文件的根元素。<bean>元素用来在Spring容器中定义一个类以及它的配置信息。

    1) <bean id="greetingService" class="...">

    <property name="greeting" value="ciao"/>

    </bean>

    spring 会通过setGreeting()方法来设置其属性值。

    2)

    <bean id="greetingService" class="...">

    <constructor-arg value="ciao"/>

    </bean>

    GreetingServiceImpl greetingService=new GreetingServiceImpl("Ciao");

    BeanFactory factory=new XmlBeanFactory(new FileSystemResource("hello.xml"));

    GreetingService greetingService=(GreetingService)factory.getBean("greetingService");

    第二章 基本bean装配

    创建系统组件之间协作关系的这个动作是id的关键,通常被成为装配。 

    容器是spring框架的核心,spring容器使用di管理所有组成系统的组件,这包括在协作组件之间建立关联。

    容器实现,两类:

    1)bean工厂

    负责创建和分发bean.使用一个filesystemresource 来创建一个xmlbeanfactory,其bean的定义来自文件系统中的xml文件,但这个之后bean工厂还没有事例化bean,只有到bean在被需要的时候才被事例化。为了从beanfactory得到一个bean,只要简单地调用getbean(“name of bean”)

    2)使用应用上下文application context

    提供了文本信息解析工具

    提供了载入文件资源地通用方法

    可以向注册为监听器的bean发送事件

    bean的生命周期:

  • 相关阅读:
    CF Mike and Feet (求连续区间内长度为i的最小值)单调栈
    BOOST_CLASS_EXPORT
    STL 源代码剖析 算法 stl_algo.h -- search
    烦人的Facebook分享授权
    [Swift]Scanner字符串扫描类
    [Swift]LeetCode682. 棒球比赛 | Baseball Game
    [Swift]LeetCode680. 验证回文字符串 Ⅱ | Valid Palindrome II
    [Swift]LeetCode679. 24点游戏 | 24 Game
    [Swift]LeetCode678. 有效的括号字符串 | Valid Parenthesis String
    [Swift]LeetCode677. 键值映射 | Map Sum Pairs
  • 原文地址:https://www.cnblogs.com/lauraxia/p/2868986.html
Copyright © 2011-2022 走看看