IDEA整合SSM框架—配置SpringMVC和DispatchServlet
配置SpringMVC和DispatchServlet
该文章是描述配置SpringMVC和DispatchServlet,实现接口hellword。
通过配置spring-mvc.xml、web.xml文件来实现。
引入Spring依赖包
- 在pom.xml的节点中引入一下依赖包
<!-- Spring Core -->
<!-- http://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- Spring Web -->
<!-- http://mvnrepository.com/artifact/org.springframework/spring-web -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
<!-- Spring Web MVC -->
<!-- http://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>4.1.4.RELEASE</version>
</dependency>
创建Spring配置文件
- 在resources下先创建xml文件夹,包名不固定,再右击xml,选择New>Xml Configuration File>Spring Config等菜单创建spring-mvc.xml文件,包名和文件名不固定
- 创建完成之后spring-mvc.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
</beans>
配置DispatchServlet
- 在web.xml配置DispatcherServlet
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Archetype Created Web Application</display-name>
<servlet>
<!--与servlet-mapping节点中的servlet-name相同-->
<servlet-name>mvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<!--扫码spring配置文件,会加载以spring-开头的,xml文件-->
<param-value>classpath:xml/spring-*.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<!--与servlet节点中的servlet-name相同-->
<servlet-name>mvc</servlet-name>
<!--可以设置为/ .do等后缀 访问接口时,需要带设置的后缀-->
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
实现接口helloword
- 创建HellWordController类
@Controller
public class HelloWordController {
@RequestMapping(value = "helloWord",
method = RequestMethod.GET,
produces = "application/json;charset=UTF-8")
@ResponseBody
public Object helloword() {
return "第一个WEB接口[Hello Word !]";
}
}
- 注解描述
@RestController注解类,该类中的所有接口都返回String数据
@Controller注解类,没有使用@ResponseBody注解的方法,返回网页,jsp或者html
@Controller注解类,@ResponseBody注解方法,功能@RestController注解功能相同,
如果所有接口都返回String数据,直接使用@RestController注解类,反之使用组合注解
@RequestMapping注解实现访问地址,
value是接口地址,
produces返回数据类型以及编码格式,可解决中文乱码问题,
method 请求方式
- 在spring-mvc.xml注册启动注解
<!--扫码控制器路径-->
<context:component-scan base-package="com.xiao.demo.springmvc.controller"/>
<!--启动注解-->
<mvc:annotation-driven/>
<!--配置<mvc:annotation-driven/>后,Spring启用注解驱动。
然后Spring通过<context:component-scan/>标签的配置,自动扫描@Component,@Controller,@Service,@Repository等注解标记的组件注册到工厂中,来处理请求。-->
运行项目及访问接口
浏览器如图所示,表示springmv配置成共
接口配置返回对象型数据
如果返回字符串结果,上面配置已足够,但实际项目中返回的是实体类对象或者JSON对象,需要另做一些配置,未配置会出现406错误
- pom.xml中引入JSON工具包
<!--json数据处理工具-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.56</version>
</dependency>
- 将spring-mvc.xml中的mvc:annotation-driven/代码修改成如下代码
<!--启动注解,并处理返回对象型数据-->
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json</value>
<value>application/xml;charset=UTF-8</value>
</list>
</property>
<property name="features">
<list>
<value>DisableCheckSpecialChar</value>
</list>
</property>
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
写在最后
人这一生也没有多少时间可以挥霍,
踏实一点,务实一些,
做自己想做的事,
如此简单!