跟着《SpringInAction》学Spring——入门篇

来源:互联网 发布:2016年网络诈骗追回率 编辑:程序博客网 时间:2024/05/16 12:24

入行半年,菜鸟一枚。俗话,好记性不如烂笔头,仅以此文开启自己的程序员生涯,也望能结交同行好友。

最近学习Spring,在看一本叫《Spring实战》的书,故,此文集中的文章,都是跟这本书的学习。废话不多说,开始写了。

首先,写写这本书的大概:

第一部分:Spring框架的核心,DI/IOC/AOP

第二部分:Spring在WEB层的应用,SpringMVC

第三部分:Spring在持久层的应用

第四部分:Spring与其他系统的集成

从书的组成结构来看,Spring为JAVA开发人员在对象的管理,WEB层,持久层和系统集成等方面提供了帮助。


第一部分:

——第一章Spring之旅

概述:

1、这一章主要介绍了Spring为了降低JAVA开发的复杂性,总的采取的4种关键的策略:

1.1、基于POJO的轻量级和最小侵入性变成

1.2、通过依赖注入和面向接口实现松耦合

1.3、切面和惯例进行声明式编程

1.4、通过切面和模板减少样式代码

围绕这四个策略,做出了详细的解释。

2、如何加载配置文件,以及上下文的概念,bean的生命周期

3、Spring全部功能介绍

4、Spring的新功能

一、4种关键的策略

1、非侵入式编程:不同于Structs2/WebWork/Tapestry等框架,Spring框架不会强迫开发人员实现Spring规范的接口或者继承Spring规范的类,在Spring框架构建的应用中,它的类没有任何痕迹表明了使用了Spring。这意味着这个类在Spring应用和非应用中都可以发挥同样的作用。

2、依赖注入(DI)

优点:实现对象的松耦合

code1.1

package com.springinaction.knights;public class DamselRescuingKnight implements Knight {private RescueDaselQuest quest;public DamselRescuingKnight(){this.quest = new RescueDamselQuest();//与RescueDamselQuest紧耦合}public void embarkOnQuest(){quest.embark();}}
code1.2

package com.springinaction.knights;public class BraveKnight implements Knight {private Quest quest;public BraveKnight(Quest quest){ //Quest被注入进来this.quest = quest;}@Overridepublic void embarkOnQuest() {quest.embark();}}



通过DI,对象的依赖关系将由系统中负责协调对象的第三方组件在创建对象的时候进行设定,对象无需自行创建或管理它们的依赖关系,依赖关系将被自动注入到它所需要的对象中去。

1.1中的代码就是传统开发过程,对象负责创建、管理、协调与自己相互写作的对象,这会导致高度耦合。看1.2中的代码,Quest是一个接口,通过Quest接口表明依赖关系,将需要的对象注入到方法中。

Spring作为一个管理对象的容器,它会帮我们创建对象、管理对象、装配对象,实现对象之间的松耦合。

如果一个对象只通过接口来表明依赖关系,那么这种依赖就能够在对象本身不知情的情况下用不同的具体实现进行替换。



原创粉丝点击