一. 下载spring资源包
进入spring官网http://spring.io/
点击左上方bar的projects
点击spring framework
在spring framework的页面可以看见一个关于版本的表格,选择一个适合的版本点击reference
在目录2.3.1中找到一个 Distribution Zip Files ,点击它
再点击出现在页面中央的链接http://repo.spring.io/release/org/springframework/spring
下载需要版本号对应的reference 下载
除了这个资源包外 还需要下载 commons-logging-1.0.4.jar 和 aopalliance.jar 自行百度下载
commons-logging-1.0.4.jar 是日志资源包,每它直接报错
aopalliance.jar 是在使用context标签的时候会报错 (不是必须要)
二.spring 个人理解
要了解spring,首先要知道ioc,di,aop这几个概念
IOC (Inversion of Control)中文名为控制反转,从字面意思上理解就是将程序控制的权利从类与类之间的关系转变到了类与容器(spring)的关系。IOC与传统编程最大的优点是实现了类与类之间的解耦,这意味着我们在更新某个类的功能时,无需把之前的所有类都替换,而只用在容器中替换就行,这大大的简化了代码的复杂度和维护的复杂度。举个例子,我们在项目中使用arraylist,有一天突然发现Linkedlist更高效(只是举个例子 这并不是事实),于是我们要浏览我们所有的代码,把所有的arraylist改成linkedlist,这是很麻烦的,但如果我们有一个容器,容器中存放着一个名字叫list的组件,每次我们需要使用list的时候只是去容器中取出list,那么当要大改的时候,我们只需要将容器中的list从arraylist改成linkedlist,这样便十分的方便
DI (Dependency Injection)中文名为依赖注入,依赖注入实际上是一种实现IOC的方法,我的理解是所谓依赖注入就是把类与类的依赖关系存放在容器中,这样类便可以通过容器来获得组件
AOP(Aspect Oriented Programming)中文名 面向切面编程,它是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。如果你用过Filter你会很容易明白这个概念,AOP就相当于过滤器编程,你不在是对一个类进行编程而是对一群类甚至所有类进行编程,这大大提高了我们的编码效率。
三.spring helloworld
这一小节主要讲spring的配置文件的格式
首先我们先引包,在第一节里提到的包都引进来。我们先在src下创建一个lib文件夹,将spring-framework-4.1.5.RELEASE-dist.zip解压然后把lib下的jar都导入到src下的lib,然后把补充的两个jar导入src下的lib。右键点击工程文件夹选择properties->javaBulidPath->Libaraies->Add jars->选择src下的lib下的所有jar->ok 导入完成
我们先创建一个类 helloWorld.class
class helloWorld{
public void hello(){
System.out.println("helloWorld");
}
}
然后在工程下创建一个src 下 创建一个beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.2.xsd">
<bean id="helloWorld" class="com.xperdit.spring.helloWorld"/>
</beans>
首先beans中的配置原封不动的复制粘贴,它表示了你xml对应的格式是怎么样的,和dtd一样。
然后在beans加入我们可爱的helloWorld,id表示它对应的id号,可以不与类名一致,class是它所在的位置,必需像我这样写全了。
然后建立一个测试类 test.class
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
public class test {
public static void main(String[] args) {
ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");
helloWorld hw = (helloWorld)ac.getBeans("helloWorld");
hw.hello();
}
}
通过new ClassPathXmlApplicationContext("beans.xml")来获得一个spring对象
然后调用它的hello方法
算了 写不下去了 一坨翔。。。