前言
之前有使用IDEA工具建立Maven管理SpringMVC项目,IDEA是比较智能的集成开发环境,在新建项目时自动生成了相关的配置文件和自动引入了相关的架包资源,相对来说,eclipse构建项目过程相对复杂点,同时也可以了解更多相关的内容。
创建项目步骤
新建maven项目
(先将eclispe切换为Jave EE视图)
file->new->maven project
next
- next
- 填写项目相关信息,用于Maven项目定位
5.生成的项目结构如下
正常Maven项目的src目录下有main和test两个文件夹,main文件放置项目源代码,test文件夹放置测试代码,新建的项目没有发现test文件夹。
解决方法:
设置完后,工程中出现test文件夹
Spring MVC环境搭建
通过Maven引入项目所需的依赖包
这是Spring中的一些常用的架包和作用简介,当然只需要有选择性的引入,核心的架包一定需要导入,在后续项目编写阶段如果发现缺少某些架包报错,再引入也可以。
(1) spring-core.jar
这个jar文件包含Spring框架基本的核心工具类,Spring其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
(2) spring-beans.jar
这个jar文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI支持,引入spring-core.jar及spring-beans.jar文件就可以了。
(3) spring-aop.jar
这个jar文件包含在应用中使用Spring的AOP特性时所需的类。使用基于AOP的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。
(4) spring-context.jar
这个jar文件为Spring核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI所需的全部类,UI方面的用来与模板(Templating)引擎如Velocity、FreeMarker、JasperReports集成的类,以及校验Validation方面的相关类。
(5) spring-dao.jar
这个jar文件包含Spring DAO、Spring Transaction进行数据访问的所有类。为了使用声明型事务支持,还需在自己的应用里包含spring-aop.jar。
(6) spring-hibernate.jar
这个jar文件包含Spring对Hibernate 2及Hibernate 3进行封装的所有类。
(7) spring-jdbc.jar
这个jar文件包含对Spring对JDBC数据访问进行封装的所有类。
(8) spring-orm.jar
这个jar文件包含Spring对DAO特性集进行了扩展,使其支持 iBATIS、JDO、OJB、TopLink,因为Hibernate已经独立成包了,现在不包含在这个包里了。这个jar文件里大部分的类都要依赖spring-dao.jar里的类,用这个包时你需要同时包含spring-dao.jar包。
(9) spring-remoting.jar
这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。
(10) spring-support.jar
这个jar文件包含支持缓存Cache(ehcache)、JCA、JMX、邮件服务(Java Mail、COS Mail)、任务计划Scheduling(Timer、Quartz)方面的类。
(11) spring-web.jar
这个jar文件包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
(12) spring-webmvc.jar
这个jar文件包含Spring MVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
(13) spring-mock.jar
这个jar文件包含Spring一整套mock类来辅助应用的测试。Spring测试套件使用了其中大量mock类,这样测试就更加简单。模拟HttpServletRequest和HttpServletResponse类在Web应用单元测试是很方便的。
到http://mvnrepository.com/查找相关的依赖,复制到项目的porm.xml文件中,然后更新maven项目,相关的架包就会被引入到项目中。
这只是部分的架包,后续还用到其他的就再引用。
添加配置文件
我的eclipse没有添加Spring插件,只能手动复制Spring相关的配置文件
配置文件内容参考我的另外一篇博客,链接如下。
项目代码编写
项目的具体内容见博客
Spring web MVC实现Demo
里面有SpringMVC流程相关的知识,application.xml和web.xml配置编写的具体内容。当时使用的集成工具是IDEA,现在改用eclipse创建该项目。
补充一下application.xml的内容简介:
这是项目中application.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"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">
<!-- 添加注解扫描
-->
<context:component-scan base-package="com.hnust.springmvc" />
<mvc:annotation-driven />
<!-- 定义ViewResolver
-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp" />
<property name="suffix" value=".jsp" />
</bean>
</beans>
文件格式介绍
这样看就明了很多,之后有需要再添加命名空间。
在程序调试过程中,一直出现这样一个错误
“Line 1 in XML document from ServletContext resource [/WEB-INF/applicationContext.xml] is invalid; nested exception is org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 7; 不允许有匹配 “[xX][mM][lL]” 的处理指令目标”
没法找到错误来源,结果发现是复制xml内容时,第一行没有顶格,说明xml编写要严格按照格式来。
总结
写此博客时,本人也是一边学习,一边记录,中间发现自己的eclipse没有安装Spring插件,然后找不到配置文件,中间一直在纠结着哪里找到配置文件的模板引入工程中,后面只能再自己之前建的工程中找到xml复制过来。说明我对整个SpringMVC的架构还不是很熟悉,如果文章某些地方出现问题,欢迎批评指正。