一个简单的SpringMVC需要哪些jar包
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个简单的SpringMVC需要哪些jar包相关的知识,希望对你有一定的参考价值。
spring依赖的jar包如下:下面是每个jar包的说明
spring.jar 是包含有完整发布模块的单个jar 包。但是不包括mock.jar, aspects.jar, spring-portlet.jar, and spring-hibernate2.jar。
spring-src.zip就是所有的源代码压缩包。
除了spring.jar 文件,Spring 还包括有其它21 个独立的jar 包,各自包含着对应的Spring组件,用户可以根据自己的需要来选择组合自己的jar 包,而不必引入整个spring.jar 的所有类文件。
spring-core.jar
这个jar 文件包含Spring 框架基本的核心工具类。Spring 其它组件要都要使用到这个包里的类,是其它组件的基本核心,当然你也可以在自己的应用系统中使用这些工具类。
外部依赖Commons Logging, (Log4J)。
spring-beans.jar
这个jar 文件是所有应用都要用到的,它包含访问配置文件、创建和管理bean 以及进行Inversion of Control / Dependency Injection(IoC/DI)操作相关的所有类。如果应用只需基本的IoC/DI 支持,引入spring-core.jar 及spring-beans.jar 文件就可以了。
外部依赖spring-core,(CGLIB)。
spring-aop.jar
这个jar 文件包含在应用中使用Spring 的AOP 特性时所需的类和源码级元数据支持。使用基于AOP 的Spring特性,如声明型事务管理(Declarative Transaction Management),也要在应用里包含这个jar包。
外部依赖spring-core, (spring-beans,AOP Alliance, CGLIB,Commons Attributes)。
spring-context.jar
这个jar 文件为Spring 核心提供了大量扩展。可以找到使用Spring ApplicationContext特性时所需的全部类,JDNI 所需的全部类,instrumentation组件以及校验Validation 方面的相关类。
外部依赖spring-beans,追答
拟HttpServletRequest 和HttpServletResponse 类在Web 应用单元测试是很方便的。并且提供了对JUnit的支持。
外部依赖spring-core。
spring-aspects.jar
提供对AspectJ的支持,以便可以方便的将面向方面的功能集成进IDE中,比如Eclipse AJDT。
外部依赖。
WEAVER JARS (dist/weavers)说明。
spring-agent.jar
Spring的InstrumentationSavingAgent (为InstrumentationLoadTimeWeaver),一个设备代理包,可以参考JDK1.5的Instrumentation功能获得更多信息。
外部依赖none (for use at JVM startup: "-javaagent:spring-agent.jar")。
spring-tomcat-weaver.jar
扩展Tomcat的ClassLoader,使其可以使用instrumentation(设备)类。
外部依赖none (for deployment into Tomcat's "server/lib" directory)。
2.spring-webmvc-x.x.x.RELEASE.jar
3.spring-aop-x.x.x.RELEASE.jar
4.spring-beans-x.x.x.RELEASE.jar
5.spring-context-x.x.x.RELEASE.jar
6.spring-core-x.x.x.RELEASE.jar
7.spring-expression-x.x.x.RELEASE.jar
8.spring-web-x.x.x.RELEASE.jar
9.commons-log-.x.x.x.RELEASE.jar
这9个包就是SpringMVC用到的包了,如果我们用原始的方法先把包下载下来然后导入项目的话那就必须一个个导了,如果你想偷点懒,那么也不是没有办法的。本回答被提问者采纳
创建一个简单的SpringMVC框架
昨天写了一个单个Mybatis框架的小例子,今天来写一个SpringMVC框架的小例子。来复习一下框架的一些知识。主要是理解框架的执行流程。下面就直接开始吧。
SpringMVC框架是现在比较流行的MVC框架,类似于Struts2,它的好处有很多,最重要的大概就是它是Spring的衍生产品,属于SpringFrameWork的后续产品,所以不需要特别的jar包,直接就可以和Spring整合,另外SpringMVC框架的设计思想是:控制器是基于方法的拦截,不是Struts2基于实例的拦截,所以SpringMVC对于服务器的内存的消耗要小于Struts2。剩下的优点我可能不太了解,欢迎大家补充。
实现SpringMVC的小例子比较简单,和前面Mybatis的例子一样,也需要几个步骤。
1.导入jar包,因为SpringMVC是SpringFrameWork的后续产品,所以需要的jar包和Spring没有什么区别,下面就举出本次小例子需要的jar包。
2.编写Controller类。Controller类相当于Struts2中的Action,只不过Action是实例拦截用户请求的,Controller是方法拦截用户请求的。因为SpringMVC配置文件比较少,只有一个核心配置文件,所以大部分的配置都是需要注解来完成的。代码如下:
package com.psq.springmvctrain.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller public class HelloWorld { /** * hello方法 */ @RequestMapping("hello") public ModelAndView hello() { System.out.println("hello world"); //模型视图,springMVC自带的 ModelAndView mav = new ModelAndView(); //设置的模型数据,用于传递到jsp页面 mav.addObject("msg", "hello springmvc..."); //设置打开的视图名字 mav.setViewName("/WEB-INF/jsp/hello.jsp"); return mav; } }
3.配置SpringMVC核心配置文件springmvc.xml。这个文件主要是配置SpringMVC中的bean对象,还有就是配置映射器,适配器,视图解析器(SpringMVC三大组件)。一些细节的问题代码中都有注释,都有详细的介绍。代码如下:
<?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:p="http://www.springframework.org/schema/p" 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.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd"> <!-- 配置@Controller处理器,包扫描器 --> <context:component-scan base-package="com.psq.springmvctrain.controller" /> <!-- springmvc三大组件,处理器映射器,处理器适配器,视图解析器 --> <!-- 映射器与适配器必需配套使用,如果映射器使用了推荐的RequestMappingHandlerMapping, 适配器也必需使用推荐的RequestMappingHandlerAdapter。 --> <!-- 配置处理器映射器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" /> --> <!-- 配置处理器适配器 --> <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" /> --> <!-- 注解驱动配置,代替映射器与适配器的单独配置,同时支持json响应(推荐使用) --> <mvc:annotation-driven /> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 配置视图响应的前缀 --> <property name="prefix" value = "/WEB-INF/jsp/" /> <!-- 配置视图响应的后缀 --> <property name="suffix" value = ".jsp" /> </bean> </beans>
4.编写jsp页面,提供测试。这个页面写什么无所谓,主要就是 测试使用,hello world即可。没有什么难度。要注意的就是jsp文件夹的位置要在WEB-INF目录下,可以防止用户的直接访问。
5.配置前端控制器,在web.xml中配置和SpringMVC相关的一些配置,没有什么要讲的点,主要代码如下:
<!-- 配置前端控制器 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 加载springmvc核心配置文件 --> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> </servlet> <!-- 配置拦截路径 --> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.action</url-pattern> </servlet-mapping>
6.测试。测试就是最后一步了,要注意在web.xml中配置了拦截的路径,所以在访问的时候要注意请求的地址是以.action为结束的。
编写的是一个小例子,甚至没有连接数据库,这里也不再讲和Mybatis的整合,大概在复习完Spring后,我会整合三个框架。我还是认为,最主要的学习是学习框架的思想和框架的具体流程,使用框架只是一个入门。剩下的就没有什么了。下面就说一说SpringMVC框架的具体流程。
用户请求一个地址,首先web.xml会先拿到地址,首先进行判断,找到处理这个请求的servlet,在加载SpringMVC的核心配置文件。在核心配置文件中会加载所有的Controller类,因为springmvc.xml中声明了包扫描器,会扫描所有的Controller类,在去对应的Controller类中找到和用户请求相同的方法。处理请求后,在返回视图。代码执行的流程图如下所示:
以上就是代码的执行流程图,但是单看这个还是很难理解SpringMVC的执行流程,下面就在说说SpringMVC的架构。
SpringMVC中最重要的就是三大组件。处理器映射器,处理器适配器,视图解析器。三大组件的先后顺序也是这样,用户请求先交给前端控制器,在调用处理器映射器,返回处理执行链。在调用处理器适配器,适配器决定由那个处理器处理,处理完成后返回一个模型和视图,在交给视图解析器决定返回的视图。最后视图解析器返回给前端控制器,前端控制器在响应用户。最后完成。具体的结构图如下:
上面的两个图不是我的,如果有问题,联系我,我删除。
上面就是SpringMVC的一些具体流程,现在可以完成和理解本次的简单的例子了,但是对于开发还是远远不够,还是有很多问题,这里也不再叙述,因为本博客只是理解SpringMVC的思想和流程。但是还是列出具体的问题,防止自己忘记。
首先是:在实际的开发中,Controller中会有一些参数要传进去,如何传参是个问题,SpringMVC支持request和response传参,但是很麻烦,所以可以直接传pojo类,基本类型,包装的pojo类。具体的传参还是要看个人的开发。
其次是:映射器和适配器必须要配套使用,还有就是我的代码本来使用映射器和适配器是过时的,所以进行了修改,具体的修改有些麻烦,不再叙述。提个醒,自己没有忘就可以了。
在其次就是:SpringMVC和Mybatis的整合问题,其实可以直接三个框架整合,因为SpringMVC是和Spring无缝整合的,所以后面会在写一个博客直接整合三个框架。
最后就是:个人认为Spring-Boot和Maven虽然在一定程度上方便了开发,但是这些工具也在一定程度上提高了入门的门槛,工具的使用看自己的理解,菜鸟像我还是先慢慢写,最后理解了在使用这些工具会更好。这是个人的理解,勿喷。
结束。
以上是关于一个简单的SpringMVC需要哪些jar包的主要内容,如果未能解决你的问题,请参考以下文章