第一步:工具、环境和包以及他们的版本
从内到外我们依次需要的Java的环境 jdk1.7(这个版本用的最多也最稳定),spring的的包版本是3.0,Tomcat的版本是Tomcat7,开发工具用eclipse这个版本无所谓。这里面不能有版本错误,任何一个版本不对都会出现错误。例如jdk1.8和spring3.0不兼容,jdk1.7和Tomcat9也不兼容。下面开始搭建。所需要的jar包,如下图,紫色框就是所有的依赖包。其中JRE System Library是java开发工具包jdk,创建项目时指定jdk就直径会导入进来。Apache Tomcat v7.0是项目指定存放的容器时会导进来,如果创建项目时不导进来就会不存在,手动Configure Build Path,没有这个的话也肯定不能运行在tomcat容器里面。Web App Libraries 则是自己需要从依赖的官网(例如spring,mybatis)上下载了 。
Web App Libraries展开后是这样的。其中紫色框就是SpringMVC的框架,就这一个包。因为它本来就是属于Spring框架的一个模块。所以他们之间不需要整合。
第二步:配置SpringMVC
SpringMVC是一个表现层的MVC框架。我们知道一个web服务器,浏览器发过来的请求,服务器是通过web.xml文件入口来接收的。SpringMVC既然是一个表现层的框架,那自然是配置在这里面。看下图,绿色框就是web.xml文件,紫色框里面就是配置的springMVC,本来web.xml源文件里面是没有这内容的。这是通过servlet来配置的。这个servlet是前端控制器DispatherServlet,DispatherServlet里面需要配置处理器映射器、处理器适配器和视图解析器,这些都是springMVC的内部所有的配置。所以这个DispatherServlet有一个属性contextConfigLocation就指向一个ioc容器我这里是写在classpath的spring/springmvc.xml目录。
这个spring/springmvc.xml在下图,看里面我只配置注解类型的处理器映射器和处理器适配器,一般这两个要对应配置,但是如果配置注解类型的,那么这个一个注解 <mvc:annotation driven /> 就可以了,也就是这个一配置就代替了mapper和adapter两个配置器。然后下面配置一下controller的扫描包,即controller所在的路径,我这里是cn.myblog.controller。看到没有,这其实就是一个spring容器,beans里面配置很多bean。springMVC本来就是spring的一个模块,所以他们之间不需要整合。
此时前端控制器就配置好了,然后就需要编写Controller。在以而写好的类上面配置@Controller注解就可以了。然后用@RequestMapper注解映射出客户端浏览器那边请求的url。如下图,对应的url像 http://主机ip:8080/Myblog/other/juankuan.action?money=捐款数额 ,就可以请求到这个Controller了,我请求的url是 http://127.0.0.1:8080/Myblog/other/juankuan.action?money=80 ,这个80就会被打印出来。
第三步:加载spring容器
其实从上面图片我们也看到了,我这个项目除了springMVC这个容器,还有分别applicationContext-dao、service、transaction.xml三个容器。这个就是普通的项目加载spring容器一样的,要加载ContextLoaderListener监听器和contextConfigLoader属性,分别在<listener>和<context-param>两个标签里面配置。
第四步:配置mybatis框架
mybatis是apache的顶级项目。我们要用到的就是mybatis和spring的整合包。这个整合包以前是由spring提供的,现在是由mybatis提供的,托管在github上面。下载下来就是下图红框中这三个核心包。
首先,拥有了mybatis和spring的整合包,这样搭建他们的框架就已经很方便了,因为整合包都已经给做好了。在原本扫描mapper文件、链接数据源等任务是放在mybatis配置文件中,现在整合之后,就放在了spring容器中了。其实我们理解应该是,不管是谁加载,反正最后肯定是到内存中是要用到的。下面就是dao层的配置文件,即加载数据源的文件。spring加载了这个,就能链接数据库了。中间有加载一个db.properties的文件,那是链接数据库的数据,我这里用的是mysql数据库。在这里,主要就是配置sqlSessionFactory这个对象,mybatis的就是靠这个对象生成sqlSession对象来操作数据库。官方提供了org.mybatis.spring.SqlSessionFactoryBean 这个类来配置,所以我们要用这个配置,下图中我已经配好了。
上面的红色框就是需要配置的mybatis配置文件,看下图就是mybatis的文件。不再是spring的约束了,而是mybatis的,是以configuration为主标签,我这里什么都没有写,什么都没有配置。
到这里,SSM框架的搭建就差不多了。利用这个框架从前到后就可以开始写业务了。这里也只是写了其中的主要思想,涉及到的细节就太多了。大家先了解一个大概就行了,因为里面每配错一个,运行tomcat时就会出现错误,我是调了很多遍才调通的。