了解Spring
下面的一系列的文章的所有内容主要来源于Spring2.5 Reference和传智播客Spring视频,文章中所有的例子都是基于Spring2.5学习和测试的。
Spring是一个开源的控制反转(Inversion of Control,IoC)和面向切面(AOP)的容器框架。它的主要目的是简化企业开发。
一。容器(Container)
? 容器可以管理对象的生成、资源取得、销毁等生命周期,甚至建立对象与对象之间的依赖关系。Spring提供了容器功能,您可以使用一个配置文件(通常是XML),在当中确定对象名称、确定如何产生对象(Prototype方式或Singleton方式)。在启动容器之后,所有的对象都可以直接取用,不用再编写任何一行代码来产生对象,或是建立对象与对象之间的依赖关系。具体从Java的角度来说,容器就是一个Java所编写的程序,原先必须自行编写程序以管理对象,现在容器会自动帮你做好这一切。
二.控制反转(Inversion of Control,IoC)
public class Bean2{@Transactional(propagation=Propagation.RequiresNew)public void save(Connection conn){Statement.executeUpdate("insert into Log(content) values(?)");}}四。Spring到底应该是轻量级框架还是重量级框架
其实划分一个应用是属于轻量级还是重量级,主要应该看它使用了多少服务。
对于Spring容器,它提供了很多服务,但这些服务并不是默认为应用打开的,当应用需要某种服务,还需要指明使用该服务,如果应用使用的服务很少,如:只使用了Spring的核心服务,那么我们认为此时应用属于轻量级的,如果应用使用了Spring提供的大部分服务,这时就应该把它划入重量级。目前EJB容器就因为默认为应用提供了EJB规范中所有的功能,所以它应该划入重量级。
五。Spring需要的jar包
使用Spring需要的jar包:
dist\spring.jar
lib\jakarta-commons\commons-logging.jar
如果使用了切面编程(AOP),还需要下列jar文件
lib/aspectj/aspectjweaver.jar和aspectjrt.jar
lib/cglib/cblib-nodep-2.1_3.jar
如果使用了JSR-250中的注解,如@Resource/@PostConstruct,还需要下列的jar文件 lib/j2ee/common-annotations.jar
六。解决编写spring配置文件时,不能出现帮助信息的问题
由于spring的schema文件位于网络上,如果机器不能连接到网络,
那么在编写配置信息的时候就无法出现提示信息,解决方法有两种:
1。让机器上网,eclipse会自动从网络上下载schema文件并缓存在硬盘上。
2。手动添加schema文件,方法如下:
windows->preferences->myeclipse->files and editors->xml->xmlcatalog,点"add",在出现的窗口中的Key Type中选择URI,在location中选"File system",然后在spring解压目录的dist/resources目录中选择spring-beans-2.5.xsd,回到设置窗口的时候不要急着关闭窗口,应把窗口中的Key Type改为Schema location ,Key改为http://www.springframework.org/schema/beans/spring-beans-2.5.xsd。