第一部分 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/archive/2013/01/20/2868986.html

笔记--Spring in action相关推荐

  1. Spring in Action 4 读书笔记之使用标签创建 AOP

    目录 1. 定义一个 aspect 2. 创建一个 around advice 在之前的读书笔记 Spring in Acton 4 读书笔记之 AOP 原理及 Spring 对 AOP 的支持 中, ...

  2. Spring in Action 4th 学习笔记 之 AOP

    前提:本文中的AOP仅限于Spring AOP. 先说说为什么需要AOP 最简单的一个例子就是日志记录,如果想记录一些方法的执行情况,最笨的办法就是修改每一个需要记录的方法.但这,真的很笨... 好的 ...

  3. 第二章 装配Bean(Spring in action,3th)

                                         第二章 装配Bean 创建应用对象之间协作关系的行为通常被称为装配(wiring),是依赖注入的本质. XML方式声明Bean ...

  4. Spring学习笔记--spring+mybatis集成

    前言: 技术的发展, 真的是日新月异. 作为javaer, 都不约而同地抛弃裸写jdbc代码, 而用各种持久化框架. 从hibernate, Spring的JDBCTemplate, 到ibatis, ...

  5. (转) Spring读书笔记-----Spring的Bean之配置依赖

    前一篇博客介绍了Spring中的Bean的基本概念和作用域(Spring读书笔记-----Spring的Bean之Bean的基本概念 ),现在介绍Spring Bean的基本配置. 从开始我们知道Ja ...

  6. Spring in Action:@Vaild 表单验证不起作用

    在按照<Spring in Action>进行实践的过程中,发现@Vaild表单验证不起作用.最后查明原因如下: 仔细阅读<Spring in Action>,书中说: 从Sp ...

  7. Spring In Action 4

    在线学习连接:spring in action 4 文章目录 关键词解释 一.Spring的核心 1.1 简化Java开发 1.1.1 激发POJO的潜能 1.1.2 依赖注入 1.1.3 应用切面 ...

  8. 我的读书笔记——Spring

    我的读书笔记--Spring Bean 的三种配置方式 基于XML配置 基于注解配置 基于Java类配置 Bean定义 在Xml中通过 元素定义.如 在Bean实现类通过@compoent或者衍生类( ...

  9. Java笔记-Spring Boot中Spring WS WS-Addressing中@Action实例

    此笔记为利用Spring WS的WS-Addressing发送SOAP请求及接收其响应. WS-Addressing(Web服务寻址):传送Web服务端点的引用的数据结构,以及一套能够在特定的消息上关 ...

最新文章

  1. SAP 往一个角色里增加事务代码
  2. 谷歌对2021年的六个预测:数据和云技术的革命即将到来
  3. Linux下修复修改profile文件导致命令不用可的解决方法
  4. android 启动速度优化终极方案
  5. 处女座的测验(一)(互质数)
  6. java里的关键字有什么用_java语言关键字有哪些?都有什么用处?
  7. java 入侵 mysql_Java访问数据库Mysql
  8. 面试必备:Spring 面试 63 问!
  9. ASP.NET中GridView数据导出EXCEL小结
  10. Matrixport发布跨链资产项目M-Tokens
  11. 人工智能在塑造未来移动应用开发中的作用
  12. ctf 逆向 回顾与总结
  13. c# 汉语拼音排序函数
  14. 百度翻译API的调用
  15. 【校园快递信息系统——开题报告 分享(仅供参考呀)】
  16. centos服务器无法上网
  17. blob/text column 'content' used in key specification without a key length
  18. 9、Linux文本处理三剑客之sed命令
  19. [开源]爱发布类似fir.im和蒲公英的App发布平台
  20. 软件开发新技术(工具及相关技术)

热门文章

  1. C语言C++中memset()函数使用和注意事项
  2. agx 安装ros opencv_Ubuntu下安装realsense+melodic+OpenCV
  3. Python 测试驱动开发(五)测试数据库(上)
  4. FLOPs FLOPS
  5. Python生成词云
  6. Delphi创建对象时,Application、Self、nil三者的区别
  7. 动漫品牌“爆笑虫子”宣布与xNFT Protocol战略合作,开发NFT数字卡牌游戏
  8. Paradigm此前投资Uniswap的资金价值或超30亿美元
  9. SAP License:实施SAP Business One-企业获得了哪些业务价值
  10. SAP License:SAP学习之COPP