1.获取Spring framework jar包
从官网下载spring 最新的相关jar包,官网download地址https://www.sodocs.net/doc/0b13064865.html,/spring-community-download
打开网页找到
然后会要求填写些相关基本信息
打开了
发现最新的是spring 3.2 ,那就下它了
下载完成后会发现三个目录,命名很明确。
Docs目录相关文档。包括一份API和一份各种spring的使用说明(reference),reference提供了HTML.PDF版本,非常详细。
2.搭建第一个用到spring依赖注册的程序
直接用eclipse建立一个JAVA项目
然后添加spring的jar包引入
spring-core-3.2.0.M1.jar 核心依赖jar包
spring-context-3.2.0.M1.jar Spring容器包
spring-beans-3.2.0.M1.jar Spring beans的管理包
spring-asm-3.2.0.M1.jar Spring
注:和hibernate一起用时这个JAR会冲突,解决方法删掉它就是了
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: Invocation of init method failed; nested exception is https://www.sodocs.net/doc/0b13064865.html,ng.NoSuchMethodError:
org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V
Caused by:
https://www.sodocs.net/doc/0b13064865.html,ng.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit(IILjava/lang/String;Ljava/lang/String;[Ljava/lang/String;Ljava/lang/String;)V spring-expression-3.2.0.M1.jar
除此之外,还有需要一个Apache common的JAR包
注:如果忘记添加会commons-logging-1.1.1.jar报错
Exception in thread "main" https://www.sodocs.net/doc/0b13064865.html,ng.NoClassDefFoundError:
org/apache/commons/logging/LogFactory
关于Apache的common有很多子项目。非常有用,可以去https://www.sodocs.net/doc/0b13064865.html,/这里下载,现在只需要一个日志的,找到logging项目,下载最新版本就OK了
commons-logging-1.1.1.jar 日志记录
全部关联如下:
3.配置XML
Spring 的最大的作用就是提供bean的管理功能,在spring中bean的管理是通过XML实现的,要
用此功能,需要把bean配置到spring的xml
1.新建立一个xml.名字任意,如applicationContext.xml,或者 text.xml都可以
2.添加xml头定义
xsi:schemaLocation= "https://www.sodocs.net/doc/0b13064865.html,/schema/beans ② https://www.sodocs.net/doc/0b13064865.html,/schema/beans/spring-beans-3.2.xsd ③ ">
① Xmlns(XML NameSpace) 声明命名空间,建议是用网址做命名空间,但并不会去访问改网址,
仅仅是namespace和xsd(xsd是spring这个xml的schema文件,里面定义配置内容)里
声明的targetNamespace保持一致 .
注:这里命名空间是改不了的,其实是在代码中也写死了,可以打开spring-beans-
3.2.0.M1-sources.jar包的
org\springframework\beans\factory\xml\BeanDefinitionParserDelegate.java查看对
https://www.sodocs.net/doc/0b13064865.html,/schema/beans这个namespace的定义。
②schemaLoacation .用于绑定命名空间的schema文件,通常是用URL值对,中间用空格隔
开,前面URL是命名空间,后面URL为schema的文件地址
③xsd的存放地址,如果没有声明,eclipse会去网上下载.
在创建xml时,在eclipse编辑xml配置没有提示。
可以对eclipse中进行schema文件的添加
具体是
Windows Preferences ,搜索XML catalog,添加schema文件。
Spring 的schema文件在下载包里有,找到spring-3.2.0.M1\schema\beans\spring-beans-3.2.xsd 然后添加,编写spring配置文件就能有提示了
4.依赖注入
新建一个class用于注入,
package org.beans;
public class Test {
public void say(){
System.out.println("welcome");
}
}
把类通过xml配置注入
xmlns:xsi="https://www.sodocs.net/doc/0b13064865.html,/2001/XMLSchema-instance" xsi:schemaLocation="https://www.sodocs.net/doc/0b13064865.html,/schema/beans https://www.sodocs.net/doc/0b13064865.html,/schema/beans/spring-beans-3.2.xsd">
测试:
package org.beans;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class testBeans {
public static void main(String[] args) {
ApplicationContext ctx = new
ClassPathXmlApplicationContext("test.xml");
Test test=(Test) ctx.getBean("test");
test.say();
}
}
到此一个spring支持的开放环境就搭好了,非常简洁,需要用到spring其它功能时添加相应JAR包就是了。