这篇开始来纪录学习Spring框架的过程,声明一下,什么Struts框架和Hibernate我就不花时间去学习了,现在市场上和公司基本上不用这两个框架了。基本上上Spring和SpringMVC /Spring boot/Spring cloud,然后Mybatis框架来代替Hibernate,所以,短期内来说,我需要学习Spring这个框架,这个是基础,然后学习Mybatis,Mybatis是DAO层的技术。
1.Spring的包下载
这里就不学习什么Spring产生历史,没兴趣去了解,只知道我需要学会这个框架,为后面学习其他框架打下基础,很多测试开发已经需要具备Spring和Spring boot的使用能力。
Spring的全部包的下载地址(重要)
https://repo.spring.io/release/org/springframework/spring/
上面这个站点纪录Spring全部历史版本的各自需要的jar包以及jar包对应文档和源码等文件。我使用环境是Tomcat 8.5 + JDK8,所以我选择Spring5.0来学习。不是一个很新版本,也不是很久,2017年一个版本,完全支持JDK8,部分兼容JDK9。
这里,需要提前把这三个zip文件下载到本地,主要是第一个必须要下载,第二个是文档,第三个是约束相关的。
2.WEB项目导入包
在Eclipse上创建一个WEB 动态项目,把spring-framework-5.0.0.RELEASE-dist.zip解压,出现如下文件结构。
第一个文件夹docs是文档,有需要的时候自己去看看,英文的,第二个文件夹就是我们Spring框架所需全部jar包,第三个schema就是一些约束,我们在XML学习的时候简单学习过DTD约束。进入libs文件夹,把以下几个包导入到如图位置。
为什么要导入这几个文件呢,下面这张图是Spring的一个框架结构图,我们刚开始就是学习core container,也就是核心容器,这个核心容器下有四个组建,对应就是我们拷贝的四个jar包。上面还有一个日志相关的jar包,common-logging,自己去maven仓库下载就行。
初学者,记住这句话:Spring就是一个功能强大的容器。这个容器可以装Web层和Service层和DAO层的各自对象,还支持操作这些对象。
包导入完了,接下来就是来一个类似Hello world的例子。
3.创建一个对象
上面说了Sping是一个容器,可以装很多对象,这里我们创建一个Bean对象。新建一个com.anthony.bean包,然后这个包下新建一个User.java,两个属性,然后生成set和get方法。
package com.anthony.bean;
public class User {
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
4.书写配置文件
在src下创建一个xml文件,这个文件可以是任意名称,可以不放src下,但是业内介意,新建一个applicationContext.xml文件,放在src目录下。
在Eclipse上点击widnows->preference,搜索 xml catalog, 弹出页面,点击Add,看下图。
选择前面我们下载包解压出来的位置,进入schema/beans,选择约束文件,默认只有一个约束文件,这样点击保存,这个beans的约束文件就导入到Eclipse环境。
然后当前xml内容如下
约束文件添加完了之后,下面就是配置如何把对象交给Spring容器管理。
5.注册对象到容器
这里我们创建了一个User 对象,我们把这个对象添加到容器里管理,当前,完整的applicationContext.xml内容如下
6.测试
在src下新建一个com.anthony.test的包,然后包下新建一个Demo1.java类,类中写一个junit的单元测试用例。
package com.anthony.test;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.anthony.bean.User;
public class Demo1 {
@Test
public void fun1() {
//1 创建容器对象
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
//2 向容器 要 user对象
User u = (User) ac.getBean("user");
//3 打印user对象
System.out.println(u);
}
}
运行得到是一个内存地址,说明获取这个user对象成功。
com.anthony.bean.User@396f6598
关于Spring这个框架的hello world级别的入门程序就介绍完了,虽然还是有蒙圈的感觉。通过本篇,我们至少知道了,Spring是一个容器这个特点,容器可以管理对象,这个对象交给容器管理之前,我们需要在applicationContext.xml文件中通过name和class告诉Spring容器,这样我们测试代码中通过“user”,也就是这个对象的名称,Spring容器才能正确找到这个对象,拿出来供我们使用。