Spring知识点最全笔记.docx

上传人:b****6 文档编号:6678836 上传时间:2023-01-08 格式:DOCX 页数:51 大小:71.81KB
下载 相关 举报
Spring知识点最全笔记.docx_第1页
第1页 / 共51页
Spring知识点最全笔记.docx_第2页
第2页 / 共51页
Spring知识点最全笔记.docx_第3页
第3页 / 共51页
Spring知识点最全笔记.docx_第4页
第4页 / 共51页
Spring知识点最全笔记.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

Spring知识点最全笔记.docx

《Spring知识点最全笔记.docx》由会员分享,可在线阅读,更多相关《Spring知识点最全笔记.docx(51页珍藏版)》请在冰豆网上搜索。

Spring知识点最全笔记.docx

Spring知识点最全笔记

说明

笔记中每个知识点均标有如下标识中的一个或多个,释义如下:

理解要求:

了解:

了解本知识点,明确本知识点的作用

理解:

理解本知识点所涉及内容的工作原理

操作要求:

操作:

根据本知识点所涉及的内容,进行课堂案例的制作

应用:

根据本知识点所涉及的内容,进行融会贯通,灵活应用

知识点相关:

重点:

本知识点为本课程重点内容

难点:

本知识点为本课程难点内容,理解难度较高(难点不一定是重点)

目录

spring简介【了解】3

资源包整理【了解】【应用】4

IoC【理解】【应用】【重点】5

DI【理解】【应用】【重点】7

BeanFactory【了解】8

Bean配置(XML)【理解】【应用】【重点】9

团队开发【了解】【操作】13

Bean配置(注解)【了解】【操作】14

Spring整合JUnit【了解】【操作】16

AOP简介【理解】【重点】17

AOP简介【理解】【重点】17

AOP基本概念【理解】【重点】18

AOP(XML)【理解】【应用】【重点】19

AOP(注解)【理解】【应用】【重点】24

CGLIB【理解】【难点】25

DAO模板类【了解】26

DAO支持抽象类【理解】【操作】29

事务管理基本概念【了解】31

声明式事务(XML)【理解】【重点】34

声明式事务(注解)【理解】【应用】【重点】36

SSH整合(XML)【理解】【应用】【重点】37

Hibernate模板类【理解】【应用】【重点】42

spring简介【了解】

1.Spring是一个基于Java的轻量级的J2EE框架

基于Java:

底层Java实现

轻量级:

性能较高,运行速度较快,内存消耗较少

重量级组件:

EJB、CGI

J2EE应用框架:

Spring可以在JEE开发的三层架构的每一层为开发者带来帮助

表现层:

Servlet/JSP,Struts2,SpringMVC

业务层:

Bean管理、AOP、事务管理

数据层:

JDBC,Hibernate,SpringJDBCTemplate

域模型层:

实体类+DAO

服务层:

远端调用(webservice)[类似技术RMI+JNDI]

Spring提供的每层的服务技术

表现层:

StringMVC

业务逻辑层:

Bean管理、AOP、事务管理

数据层:

DAO支持抽象类,DAO模板技术JDBCTemplate

2.Spring的发展历程

创始人:

RodJohnson

ExpertOne-to-OneJ2EEDesignandDevelopment(2002)

阐述了J2EE使用EJB开发设计的优点及解决方案

ExpertOne-to-OneJ2EEDevelopmentwithoutEJB(2004)

阐述了J2EE开发过程中不使用EJB的解决方式(Spring雏形)

3.Spring核心技术

IOC:

控制反转

AOP:

面向切面编程/面向方面编程

4.Spring是一个超级的“黏合平台”,将很多技术黏合在一起,形成一个整体,使每个组件发挥其最大功效

资源包整理【了解】【应用】

1.本课程基于Spring3.2.0进行讲解

2.下载地址:

http:

//maven.springframework.org/release/org/springframework/spring/

说明:

通过Maven部署资源从仓库获取(后期课程)

3.资源文件

Spring资源包下spring-framework-3.2.0.RELEASE-dist.zip

Spring依赖资源包spring-framework-3.0.2.RELEASE-dependencies.zip

4.资源包目录层次结构

docs:

API帮助文档与官方手册

libs:

开发使用的jar包

schema:

开发使用的XML约束文档源文件

5.开发jar包

核心jar(4个)

spring-beans-3.2.0.RELEASE.jar

spring-context-3.2.0.RELEASE.jar

spring-core-3.2.0.RELEASE.jar

spring-expression-3.2.0.RELEASE.jar

日志相关jar(2个)

commons-logging-1.1.1.jar

commons-logging日志整合,与slf4j类似,由apache提供

log4j-1.2.15.jar

IoC【理解】【应用】【重点】

1.IoC(InversionofControl)控制反转

A:

控制:

控制的双方是什么?

谁控制谁?

主控方:

Spring

被控方:

应用程序所使用的资源

(原始)应用程序控制自己执行操作需要使用的外部资源

(Spring)Spring控制整个程序中所需要使用的外部资源

B.反转:

什么是反转?

反转什么?

正向:

应用程序直接调用资源

反向:

应用程序依赖Spring为其提供资源

反转的是资源的控制权

应用程序由主动调用资源,变为被动的等待Spring提供资源

C.有什么好处?

正向缺点:

应用程序控制的资源分布在程序的每一个地方

反向的优点:

所有的资源都在Spring中,便于管理

总结:

Spring反向控制应用程序所需要使用的外部资源。

资源受Spring管理,利用率最大化。

2.Spring模型演化过程

A.基于分层设计

UserAction使用UserService,newUserService()

UserService使用UserDAO,newUserDAO()

UserDAO

B.工厂模式,使用面向接口编程设计,解决层与层之间的紧耦合

制作接口,制作实现类,制作对象工厂

C.工厂模式+配置

制作XML文件,将实现类配置到XML文件中

读取XML文件中的配置信息,得到实现类的类名

使用反射思想,获取实现类对象class.newInstance();

D.Spring设计雏形自动的工厂+配置

工厂由Spring提供,实现类使用XML格式配置

3.IoC基础实例

A.导入jar包(6个)

B.制作log4j对应的配置文件

C.在src目录下创建核心配置文件applicationContext.xml

说明:

格式可以从xsd-config.html获取

xmlversion="1.0"encoding="UTF-8"?

>

//www.springframework.org/schema/beans"

xmlns:

xsi="http:

//www.w3.org/2001/XMLSchema-instance"

xsi:

schemaLocation="

http:

//www.springframework.org/schema/beans

http:

//www.springframework.org/schema/beans/spring-beans.xsd

">

D.将应用程序需要使用的资源配置成Spring的Bean

--Spring管理的资源全部声明到配置文件中-->

--所有资源以Bean的形式存在-->

--bean:

声明一个资源Bean-->

--bean:

id:

用于区分bean的标识-->

--bean:

class:

bean对应的模型类名-->

E.创建ApplicationContext对象

ApplicationContextctx=newClassPathXmlApplicationContext("配置文件名");

ApplicationContextctx=newClassPathXmlApplicationContext("applicationContext.xml");

F.获取Bean对象

使用应用上下文对象获取

ctx.getBean("bean的id属性值");

ctx.getBean("userService");

补充:

使用文件系统获取配置信息,要求配置文件在工程路径下(少用)

ApplicationContextctx=newFileSystemXmlApplicationContext("applicationContext.xml");

DI【理解】【应用】【重点】

1.DI(DependencyInjection)依赖注入指应用程序依赖Spring为其提供运行时所需的资源

2.DI实例

A.在应用程序中声明要使用的资源

privateStringmsg;

B.为其提供setter访问器

publicvoidsetMsg(Stringmsg){

this.msg=msg;

}

C.在Bean配置中配置该资源对象具有某个属性,属性可以配置多个

--在配置中,为该Bean需要注入的资源进行初始化-->

--property:

为该Bean注入属性-->

--property:

name:

注入的属性名称(变量名)-->

注意:

当配置中出现的属性在Bean类中不存在时,抛出异常

3.IoC与DI区别

同一件事,站在不同角度上看待问题的不同描述

IoC:

Spring立场

DI:

应用程序立场

BeanFactory【了解】

1.BeanFactory是ApplicationContext的顶层父接口,使用BeanFactory接口也可以完成获取Bean的操作

2.操作步骤:

A.初始化Resource对象

Resourceres=newClassPathResource("applicationContext.xml");

B.初始化BeanFactory对象

BeanFactorybf=newXmlBeanFactory(res);

C.根据id名称获取Bean

UserServiceservice=(UserService)bf.getBean("userService");

3.AppplicationContext与BeanFactory的区别

A.加载方式不同

AppplicationContext:

立即加载,加载配置文件时即加载

BeanFactory:

延迟加载,获取Bean实例时才加载

B.AppplicationContext具有更多的功能

国际化处理

事件传递

Bean自动装配

各种不同应用层的Context实现

注意:

实际开发中,优先选择ApplicationContext对象,避免使用BeanFactory

4..Schema风格离线约束配置方式

A.拷贝访问路径

B.打开MyEclipse设置中的XMLcatalog选项

C.创建新的映射

D.选择对应的schema风格的约束文件

E.将keytype修改为schemalocation

F.将要配置的路径复制到key中

Bean配置(XML)【理解】【应用】【重点】

1.Bean对象初始化方式有三种

构造器初始化:

Bean对应的类必须提供一个默认无参可访问的构造方法

静态工厂初始化【了解】

提供一个工厂类,使用其中的静态方法获取对象

class="cn.itcast.bean.UserStataicFactory"配置中所配置的class配置成工厂类的类名

factory-method="getInst"配置工厂类中的创建实例的静态方法

>

实例工厂初始化【了解】

提供一个实例工厂类,使用其中的实例方法获取对象。

由于该工厂类本身需要创建对象,因此该对象必须受Spring控制,所以必须配置该工厂类为Bean

—实例化工厂Bean-->

--使用实例工厂创建Bean-->

--factory-bean:

配置实例工厂在Spring范围内对应的Bean的id名称-->

--factory-method:

配置工厂类中的创建实例的实例方法-->

2.Bean的作用域

Spring初始化的Bean默认为单例模式,如果想修改成非单例模式需要修改Bean的作用范围

scope属性:

singleton:

单例

prototype:

非单例

request:

请求对象范围request.setAttribute("beanId",obj);

session:

会话Session范围request.getSession().setAttribute("beanId",obj);

globalSession:

全局会话

分布式服务器

3.Bean的生命周期

定义Bean初始化与销毁时的动作,属于回调方法配置

定义bean时指定两个回调方法,控制bean的初始化与销毁操作时执行的动作

--init-method:

初始化回调方法名,配置的方法必须由bean对象提供-->

--destroy-method:

销毁回调方法名,配置的方法必须由bean对象提供-->

init-method="init"destroy-method="destroy"scope="prototype">

销毁操作只针对scope="singletion"的对象,对于非单例对象无效

单例对象的销毁是在IoC容器关闭时发生,使用ClassPathXmlApplicationContext对象close方法完成

非单例Bean对象的内存回收交由JVM完成——GC

4.Bean属性注入

注入方式有两种

构造器注入【了解】

A.提供对应的构造方法

B.配置中设置构造方法的参数

--constructor-arg:

使用构造器传递参数-->

--value:

赋值-->

注意:

如果类型匹配不成功,可以为配置中指定index索引属性,对应构造器中参数的位置

说明:

构造器传参受构造器参数位置和类型的限定,因此不常使用

Setter注入【重点】

前提:

setter注入要求Bean必须提供无参可访问构造方法

注入简单类型:

String,基本数据类型封装类

A.提供对应要注入的属性

B.为每个要注入的属性提供对应的标准封装setter方法

C.在配置中为Bean指定要注入的属性,使用property元素name=“属性名”value=”值”

注入引用类型:

对象

A.为某个Bean注入引用类型的值,首先在Bean对应的类中声明对应的属性

privateTeacherDAOdao;

B.为每个要注入的属性提供对应的标准封装setter方法(访问器)

publicvoidsetDao(TeacherDAOdao){

this.dao=dao;

}

C.必须保障引入的对象是Spring控制的Bean

--声明引用类型的资源为Bean-->

D.在Bean的属性注入中,使用ref引用对应的资源ref=”beanId/beanName”

--setter注入-->

--name:

属性名-->

--value:

简单类型的值-->

--ref:

引用别的Bean,beanId/beanName-->

5.P命名空间的使用【了解】

Spring2.5提供了一种简化配置格式,P命名空间支持

A.xml头信息中引入对p命名空间的支持

xmlns:

p="http:

//www.springframework.org/schema/p"

B.将所有的属性注入property子元素全部修改为bean的属性

原始格式:

p空间格式:

p:

propName="propValue"//注入简单类型

p:

propName-ref="beanId"//注入引用类型

>

6.SpEl【了解】

Spring3.0引入全新的SpEL(SpringExpressionLanguage)Spring表达式语言,支持各种格式语法格式,所有的属性注入全部使用value属性名

详情参考《Spring_表达式语言.pdf》

7.集合注入【了解】

Spring支持为Bean注入集合

List

Java

Struts2

Spring3

Set

张三

张大三

张小三

Map

张三

中国

约翰

中国

吴莫愁

榜单No.1

Properties

XX

新浪

网秦

团队开发【了解】【操作】

1.团队开发时,每个独立的模块制作成一个独立的配置文件

命名格式:

applicationContext-模块名.xml模块名使用全小写字母

2.某个配置文件中,使用其他配置文件中的Bean,导入对应的配置文件

3.Bean的冲突问题

A.当多个配置中具有相同id的Bean时,后加载的替换先加载的(由配置文件的加载顺序决定)

B.当多个配置中具有相同id的Bean时,import导入相当于拷贝(由配置文件的Bean定义顺序决定)

C.同一个配置文件中id不能重复,不同配置文件,同id依赖上述规则相互覆盖

4.当id名称比较复杂,或者定义名称过

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1