笔记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的生命周期:

原文地址:https://www.cnblogs.com/lauraxia/p/2868986.html