Spring这东西其实没有想象中这么难,只是由于网上大部分资料杂糅了许多其它奇奇怪怪的技术,什么Maven,log4j,什么东西都来,还有上来就将SSH整合的,那叫初学者,怎么可能看懂?下面以一个最简单,无其它额外的技术,讲解一下Spring。
一、Spring下载
首先,Spring的下载就是一个问题。这些框架的官网改来改去,然后在强推其新技术,把历史版本通通都去掉了。正如ExtJs一样,只能在国内的网上搜一下历史版本下载。要搞Spring3.0要下两个压缩包。一个是spring-framework-3.0.5.RELEASE-with-docs.zip,另一个是spring-framework-3.0.5.RELEASE-dependencies.zip。
这里感谢,两位CSDN网友无私提供的下载地址。
spring-framework-3.0.5.RELEASE-with-docs.zip:http://download.csdn.net/download/hl518_818/4796207
spring-framework-3.0.5.RELEASE-dependencies.zip:http://download.csdn.net/download/u014175572/7514027
二、Spring的配置
Spring在配置的时候也是非常蛋疼的。在解压spring-framework-3.0.5.RELEASE-with-docs.zip与spring-framework-3.0.5.RELEASE-dependencies.zip之后,某些书籍上说把spring-framework-3.0.5.RELEASE-with-docs.zip\dist的所有内容与spring-framework-3.0.5.RELEASE-dependencies.zip的内容拷贝进去,然后添加进你的Java或者JavaWeb工程里面,最后你会发现添加完毕之后,发现你的Java或者JavaWeb工程无法运行。这是由于在spring-framework-3.0.5.RELEASE\dist中,多出一个不该存在LIBD文件。
因此,正确做法是,在Eclipse新建一个Java工程之后,下面以Java工程做例子,因为Spring其实与Javaweb半点关系都没有,只是把Java的东西用于Javaweb工程而已!
在Eclipse新建一个名为SpringHelloworld的Java工程之后,新建一个lib文件夹,解压之后,把spring-framework-3.0.5.RELEASE-dependencies的所有东西与spring-framework-3.0.5.RELEASE\dist中的所有Jar包,不包括那个LIBD文件,拷贝到Java工程下的lib文件夹,搞好之后,你的lib文件夹,应该如下所示:
之后,右键这个名为SpringHelloworld的Java工程,选择属性,之后选择Add Jars包,把刚才拷贝到lib文件夹中的Jar包都选择,再选择“确定”,具体如下图:
至此,Spring配置完毕。
三、Spring的Helloworld
1、首先在src直接新建一个包含主函数的SpringTest.java的Java文件,里面的代码如下。
import org.springframework.context.*; import org.springframework.context.support.*; public class SpringTest { public static void main(String[] args) { //初始化Spring ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); //为这个SpringTest.java注入A.java这个类, A a=applicationContext.getBean("aJava",A.class); //注入之后可以直接使用A这个类 a.print(); } }
2、之后再于在src新建一个A.java,里面的代码如下,简单得不能再简单,只是这里必须严格按照Spring的规定,变量一定要是私有的,里面一定要有一个setter方法。
public class A { private String a; public void setA(String a) { this.a = a; } public void print() { System.out.println("applicationContent.xml传进来一个a值为:" + a); } }
3、最后同样在src新建一个applicationContext.xml,里面的代码如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <bean id="aJava" class="A"> <property name="a" value="呵呵"/> </bean> </beans>
4、做完之后,Java工程目录应该如下:
回到SpringTest.java直接运行,运行结果如下,其中,那堆log4j警告不要理他,spring根本就不需要依赖于log4j运行。以后要用到再说。
四、总结
那么上面的程序,到底是在做什么呢?
其变量的传递如下,可能有点乱,大家凑合看吧!
其实不用Spring的话,在SpringTest.java,直接使用A a=new A("呵呵");然后再A.java写好构造方法,完全可以达到如上的效果。即便A.java是在其他包,你也可以用import来引入A.java。这只是一种设计模式吧。据说,在JavaWeb中可以让项目更加清晰,真的是“呵呵”了。
Spring其实就是取代原来java中的impor角色。