Spring

容器:管理一组对象的生命周期

Spring组成部分

Core封装包是框架的最基础部分,提供IoC和依赖注入特性。

这里的基础概念是BeanFactory,它提供对Factory模式的经

典实现来消除对程序性单例模式的需要,并真正地允许你从程

序逻辑中分离出依赖关系和配置。

Context(上下文)封装包构筑于Core封装包的坚固基础上:它提

供了用一种框架风格的方式来访问对象,有些像JNDI注册表。

Context封装包继承了beans包的功能,还增加了国际化(I18N)

(用于规范resourcebundle),事件传播,资源装载,以及透

明创建上下文,例如通过servlet容器。

DAO提供了JDBC的抽象层,它可消除冗长的JDBC编码和解析数据

库厂商特有的错误代码。并且,JDBC封装包还提供了一种比编

程性更好的声明性事务管理方法,不仅仅是实现了特定接口,而

且对所有的POJOs(plainoldJavaobjects)都适用。

ORM封装包提供了常用的“对象/关系”映射APIs的集成层。其

中包括JPA、JDO、Hibernate和iBatis。利用ORM封装包,可

以混合使用所有Spring提供的特性进行“对象/关系”映射,

如前边提到的简单声明性事务管理。

Spring的AOP封装包提供了符合AOPAlliance规范的面向方面

的编程(aspect-orientedprogramming)实现,让你可以定义,

例如方法拦截器(method-interceptors)和切点(pointcuts),

从逻辑上讲,从而减弱代码的功能耦合,清晰的被分离开。而且,

利用source-level的元数据功能,还可以将各种行为信息合并到

你的代码中,这有点象.Net的attribute的概念。

Spring中的Web包提供了基础的针对Web开发的集成特性,例如

多方文件上传,利用Servletlisteners进行IoC容器初始化和针

对Web的applicationcontext。当与WebWork或Struts一起使用

Spring时,这个包使Spring可与其他框架结合。

Spring中的MVC封装包提供了Web应用的Model-View-Controller

(MVC)实现。Spring的MVC框架并不是仅仅提供一种传统的实现,

它提供了一种清晰的分离模型,在领域模型代码和webform之间。

并且,还可以借助Spring框架的其他特性

Ioc的知识点:

IOC容器概念

IoC原理

IoC的注入方式

Bean管理

生命周期

Ioc:InversionofControl,控制反转.

Spring提供的两个IoC容器(BeanFactory和ApplicationContext)

<1>:BeanFactory主要适用于环境、内容受限的场合,如在Applet环境中,

BeanFactory是最基础的IoC容器,它提供了配置框架和基础功能。

<2>:ApplicationContext

org.springframework.context.ApplicationContext由

BeanFactory接口派生扩展而来,因而提供了BeanFactory所有的

功能.在构建J2EE应用时,使用ApplicationContext将是更好的

选择。context包还提供了以下的功能:MessageSource,提供国

际化的消息访问.资源访问,如URL和文件。事件传播,实现了

ApplicationListener接口的bean。载入多个(有继承关系)

上下文。

<3>:ApplicationContext继承于BeanFactory,更适合于企业级的应用开

发。

开发srping的jar文件

%Spring_home%\dist\spring.jar

%Spring_home%\lib\log4j\log4j.jar

%Spring_home%\lib\jakarta-commons\commons-logging.jar

ApplicationContext.xml

Ioc注入方式:

<1>:set注入(javaBean必须含有无参数的构造函数)

<2>:构造函数注入(序列index从0开始)

1):xml文件的bean都会被我们ioc容器进行初始化。

2):当构造函数参数个数相同,参数类型不同,指定调用

构造函数的时候需要加上type属性指定参数的类型。

<constructor-argindex="0"value="1"type="int"/>

<constructor-argindex="1"value="icexu"type="java.lang.String"/>

Spring组成部分:

<1>:ioc

<2>:aop

<3>:dao

<4>:orm

<5>:jee

<6>:web(mvcview)

ioc:BeanFactoryApplicationContext

<1>:注入方式|

set无参数构造函数

构造器注入(构造函数重载indextype)

基本属性和集合类型

自定义属性reflocal(同一个配置文件)

Bean(可以不在同一个配置文件下)

自动装配

default-autowire="byName"(bean的id的取值)

default-autowire="byType"

Bean的作用域

singleton默认

prototype

Aop:面向切面编程

AOP(AspectOrientedProgramming)的目的即在

正常的业务操作之外增加的附加操作通过切入点(pointcut)指

名进行哪些切面、

aop:动态代理、

代理模式:

静态代理:代理对象和目标对象实现统一接口

动态代理:运行时候动态加上

IUserDao{

saveUser();

deleteUser();

}

Springaop:

<1>:代理模式

<1>:静态代理

<2>:动态代理PROXY

<3>:工厂模式

<2>:Spring有关技术术语

DAO:只管访问数据库不关心事务findByNameAndPassword(name,password)

BIZ:不直接写数据访问代码DAO支持关心事务

转账:

<1>:取钱

<2>:存钱

登陆login

Session:session什么时候打开什么时候关闭?

<3>:dao

事务的传播行为

propagation_required——表示如果没有事务,则开始新的事务,事务已经存在,则加入当前事务

propagation_supports——表示如果事务已经存在,则加入当前事务,如果没有事务,不会开始新事务

propagation_mandatory——表示必须有事务存在,并加入当前事务,否则抛出异常

propagation_requires_new——表示每次都开始一个全新事务

propagation_not_supported——表示不会开始或加入事务

propagation_never——表示不会开始或加入事务,如果事务已存在,抛出异常

相关推荐