`
zx_code
  • 浏览: 98947 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring web 4.1处理json

    博客分类:
  • Java
阅读更多

Spring mvc处理json,我们都知道使用@ResponseBody,处理xml也是用此注解。如果想spring mvc的使用@ResponseBody注解处理json,我们需要加入一些处理bean,也可以使用默认spring提供的。


通过spring源码RequestMappingHandlerAdapter类,我们知道初始化的时候这些注解已经被加载进来,如下RequestMappingHandlerAdapter类的代码如下:argumentResolvers和returnValueHandlers一个接受一个返回各自装载很多处理,有兴趣可以研究源码。
@Override
	public void afterPropertiesSet() {
		if (this.argumentResolvers == null) {
			List<HandlerMethodArgumentResolver> resolvers = getDefaultArgumentResolvers();
			this.argumentResolvers = new HandlerMethodArgumentResolverComposite().addResolvers(resolvers);
		}
		if (this.initBinderArgumentResolvers == null) {
			List<HandlerMethodArgumentResolver> resolvers = getDefaultInitBinderArgumentResolvers();
			this.initBinderArgumentResolvers = new HandlerMethodArgumentResolverComposite().addResolvers(resolvers);
		}
		if (this.returnValueHandlers == null) {
			List<HandlerMethodReturnValueHandler> handlers = getDefaultReturnValueHandlers();
			this.returnValueHandlers = new HandlerMethodReturnValueHandlerComposite().addHandlers(handlers);
		}
		initControllerAdviceCache();
	}

言归正传,下面介绍处理json
spring配置文件如下:
<?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:tx="http://www.springframework.org/schema/tx"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="
		http://www.springframework.org/schema/beans 
		http://www.springframework.org/schema/beans/spring-beans.xsd 
		http://www.springframework.org/schema/tx 
		http://www.springframework.org/schema/tx/spring-tx.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.xsd
		http://www.springframework.org/schema/aop
		http://www.springframework.org/schema/aop/spring-aop.xsd"
	default-lazy-init="false">

	<!-- mvc:annotation-driven使用注解功能 -->
	<mvc:annotation-driven>
		<mvc:message-converters register-defaults="true">
			<!--json处理-->
			<bean
				class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
				<property name="supportedMediaTypes">
					<list>
						<value>application/json;charset=UTF-8</value>
						<value>text/html;charset=UTF-8</value>
					</list>
				</property>
			</bean>
		</mvc:message-converters>
	</mvc:annotation-driven>

	<!-- 只扫描Controller 注解 -->
	<context:component-scan base-package="com.zx.web"
		use-default-filters="false">
		<context:include-filter type="annotation"
			expression="org.springframework.stereotype.Controller" />
	</context:component-scan>

	<!-- 动态资源访问,默认使用其他handlerAdapter解析 -->
	<mvc:resources mapping="/images/**" location="/images/" />
	<mvc:resources mapping="/js/**" location="/js/" />
	<mvc:resources mapping="/css/**" location="/css/" />


	<!-- jsp视图 -->
	<bean id="jspViewResolver"
		class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="viewClass"
			value="org.springframework.web.servlet.view.JstlView" />
		<property name="prefix" value="/jsp/" />
		<property name="suffix" value=".jsp" />
		<property name="order" value="0" />
	</bean>


</beans>

我使用的是spring自带的类MappingJackson2HttpMessageConverter处理,在spring4.1以前都是使用MappingJacksonHttpMessageConverter类处理,在spring4.1以后都是用MappingJackson2HttpMessageConverter处理,然而换了类,自然依赖的jackson也进行升级了,spring4,1以后使用jackson-annotations-2.5.0.jar,jackson-core-2.5.0.jar,jackson-databind-2.5.0.jar

Controller层代码如下:
package com.zx.web;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.zx.entity.User;

@org.springframework.web.bind.annotation.RestController
public class RestController {
	
	@RequestMapping("/rest")
	@ResponseBody
	public User getUser()
	{
		User user = new User();
		user.setName("nihao");
		user.setAddress("anhui");
		user.setAge("89");
		user.setWork("软件");
		
		return user;
	}
}


结果如下:



项目spring-web代码如下,有兴趣的可以load,自己研究吧,绝对可以运行
  • 大小: 10.1 KB
2
2
分享到:
评论
3 楼 郑州蘑菇云 2015-07-09  
zx_code 写道
郑州蘑菇云 写道

为什么必须要加入呢?直接使用<mvc:annotation-driven /> 不就可以启用spring 提供的默认json处理类了吗?

你确定可以,你试了吗?

试过 我们现在就这样弄的啊
2 楼 zx_code 2015-07-09  
郑州蘑菇云 写道

为什么必须要加入呢?直接使用<mvc:annotation-driven /> 不就可以启用spring 提供的默认json处理类了吗?

你确定可以,你试了吗?
1 楼 郑州蘑菇云 2015-07-09  

为什么必须要加入呢?直接使用<mvc:annotation-driven /> 不就可以启用spring 提供的默认json处理类了吗?

相关推荐

    springmvc+ext4.1+json配置(含jar)

    Spring MVC、EXT4.1和JSON这三者结合,能为开发人员提供强大的工具和框架,以实现这一目标。接下来,我们将深入探讨这些技术及其整合应用。 首先,Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的...

    spring springmvc 4.1 最新版jar

    Spring 是一个全面的后端开发框架,提供依赖注入、面向切面编程、事务管理等功能,而 Spring MVC 是 Spring 框架的一部分,专门用于构建 Web 应用的前端控制器。 Spring 框架的核心特性包括: 1. **依赖注入...

    Spring Framework 4.1源代码

    在4.1版本中,Spring MVC增加了对ContentNegotiatingViewResolver的改进,使得内容协商更加智能,可以更好地处理多种格式的响应,如JSON、XML等。此外,模型视图名转换器(ModelAndViewNameTransformer)的引入允许...

    springmvc 4.1

    Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建RESTful应用程序...以上就是Spring MVC 4.1中涉及的一些主要知识点,这些内容可以帮助开发者更好地理解和使用这个版本的框架来构建高效、灵活的Web应用程序。

    springmvc4.1+spring4.1+mybatis3.2+spring-security3.2的maven环境搭建

    在Spring MVC 4.1中,一些关键改进包括更好的WebSocket支持、JSON数据绑定以及对Java 8日期和时间API的兼容性增强。 **Spring 4.1** Spring框架是Java企业级应用开发的基石,提供了依赖注入、AOP(面向切面编程)、...

    spring4.1最新架包,包含参考文档等

    Web MVC模块在Spring 4.1中继续优化,提供更高效的HTTP请求处理和视图解析。新的`@RequestMapping`注解允许更灵活的路径匹配规则,同时支持JSON和XML格式的响应。 7. **数据访问/集成** 对于数据库访问,Spring ...

    spring 4.1核心包

    Spring MVC是用于构建Web应用的强大的框架,4.1引入了更多的注解驱动的功能,如@ControllerAdvice,增强了异常处理能力。WebSocket支持则使得实时通信成为可能,提升了Web应用的交互性。 5. **Spring MVC**:4.1...

    springmvc4.1+spring4.1+mybatis3.2+spring-security3.2 jar包

    Spring MVC 4.1引入了一些新特性,如支持JSR 353 JSON绑定,改进了异常处理,以及更好的类型安全的模型属性绑定等。 2. **Spring** Spring 框架是Java企业级应用的核心,它提供了一种依赖注入(DI)和面向切面编程...

    项目开发中Spring 4.1 用到的所有的jar

    在Web层,Spring MVC在4.1版本中引入了更好的RESTful支持,如`@JsonView`用于控制JSON序列化的视图,以及`@ControllerAdvice`用于全局异常处理。另外,`ModelAndView`对象现在支持直接返回`String`,简化了视图的...

    spring-mvc41:Spring MVC 4.1 示例

    3. **RESTful支持**:Spring MVC 4.1增强了对RESTful风格的支持,通过`@RequestMapping`注解的`produces`和`consumes`属性,可以指定HTTP请求和响应的MIME类型,更好地支持JSON、XML等数据格式的处理。 4. **异常...

    springsecurity4.1.3

    JSON Web Tokens (JWT)** 虽然4.1.3版本不直接支持JWT,但可以通过扩展或第三方库实现JWT身份验证。JWT是一种轻量级的身份验证机制,适用于API和移动应用。 **8. 自定义扩展** Spring Security的灵活性允许开发者...

    MYECLIPSE + STRUTS2 + SPRING4 + HIBERNATE4 + STRUCTS2S+OGNL + MYSQL_5.7.12

    - **Tomcat**: 轻量级应用服务器,MYECLIPSE支持Tomcat 4.1、5.0、5.5、6.0版本。 - **Jetty**: 轻量级的Servlet容器,MYECLIPSE支持Jetty 4.2、5.1和6.1版本。 - **Resin**: 高性能的应用服务器,MYECLIPSE支持...

    Hibernate4.1环境搭建

    在构建现代Web应用程序时,集成Spring框架、Struts2以及Hibernate等技术是非常常见的选择。这些技术的组合通常被称为SSH(Spring + Struts + Hibernate),是一种非常强大的开发模式,能够帮助开发者高效地构建出...

    Spring3.1.1+struts2.3.4+hibernate4.1 jar包

    标题中的"Spring3.1.1+struts2.3.4+hibernate4.1 jar包"指的是一个整合了三个主流Java企业级开发框架的库文件集合,分别是Spring 3.1.1、Struts 2.3.4和Hibernate 4.1。这些jar包通常用于构建基于Java的Web应用程序...

    spring3升级到4.3.15所需要的jar包及升级步骤

    你需要检查项目中的所有Spring相关的jar包,包括但不限于`spring-context`、`spring-web`、`spring-beans`、`spring-aop`等,并用4.3.15版本的对应jar包替换掉3.0版本的。此外,可能还需要更新其他与Spring集成的库...

    Spring3.2Jar官方jar包

    4. **spring-web-3.2.0.RELEASE.jar**:这是Spring Web模块,包含了处理HTTP请求、响应以及与Servlet容器交互的相关功能,如Servlet监听器、过滤器等。它为Spring MVC提供了基础支持。 5. **hibernate-core-4.1.9....

    springMVC4-rest-jackson-jsonview-annotation.zip

    Spring4.1开始直接支持@JsonView注解。要使用@JsonView,首先我们需要定义视图,我们可以定义多个视图。一个视图定义可以继承其他视图定义。我们的POJO使用@JsonView注解属性传递已经定义的视图。在Spring的...

    spring3.1+struts2.3+hibernate4.1搭建

    ,json-default,jfreechart-default,spring-default"&gt; &lt;result name="ok"&gt;/loginOk.jsp &lt;result name="error"&gt;/loginError.jsp ``` 二、Spring 3.1.1与Struts2的整合 1. 添加Spring的相关JAR包:包括...

    spring4.1.2jar

    2. **类型安全的事件处理**:Spring 4.1 提供了类型安全的事件发布和订阅机制,使得处理事件时能够避免因类型转换错误而引发的问题。 3. **JMX 改进**:对于需要管理和监控的应用,Spring 4.1.2 提供了更好的 JMX...

Global site tag (gtag.js) - Google Analytics