SpringMVC杂记(七) Jackson与Hibernate LazyLoding无法正常工作解决办法
1) 如下代码
@Controller
@RequestMapping("/just")
public class TestController {
@Resource
private EmployeeDao dao;
@ResponseBody
@RequestMapping("/test")
public List<Employee> test() {
return dao.findAllEmployees();
}
}
如果dao查找出来的列表中包含不完整的Entity最终SpringMVC会出现一个内部异常。
2) 有人写了一个插件专门来解决这个问题。
<dependency>
<groupId>com.fasterxml</groupId>
<artifactId>jackson-module-hibernate</artifactId>
<version>1.9.1</version>
</dependency>
这里包含一个Moduel("com.fasterxml.jackson.module.hibernate.HibernateModule")实现,就像所有Jackson标准的Model注册一下就可以用了。
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new HibernateModule());
3) 可以自己写一个ObjectMapper的子类注册给"org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"
package com.wicresoft.jpo.demo.json;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig.Feature;
import com.fasterxml.jackson.module.hibernate.HibernateModule;
public class HibernateAwareObjectMapper extends ObjectMapper {
public HibernateAwareObjectMapper() {
HibernateModule hm = new HibernateModule();
registerModule(hm);
configure(Feature.FAIL_ON_EMPTY_BEANS, false);
}
public void setPrettyPrint(boolean prettyPrint) {
configure(Feature.INDENT_OUTPUT, prettyPrint);
}
}
<mvc:annotation-driven conversion-service="conversion-service" validator="validator">
<mvc:message-converters register-defaults="false">
<bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
<bean class="org.springframework.http.converter.FormHttpMessageConverter" />
<bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
<!-- 修改为以下配置即可 -->
<bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="objectMapper">
<bean class="com.wicresoft.jpo.demo.json.HibernateAwareObjectMapper">
<property name="prettyPrint" value="true" />
</bean>
</property>
</bean>
<bean class="org.springframework.http.converter.StringHttpMessageConverter" />
<bean class="com.wicresoft.jpo.demo.http.converter.UTF8StringHttpMessageConverter" />
</mvc:message-converters>
</mvc:annotation-driven>
分享到:
相关推荐
SpringMVC、Spring3和Hibernate4是Java Web开发中三个非常重要的框架,它们共同构建...通过分析和运行这个示例,开发者可以更好地理解SpringMVC、Spring3和Hibernate4如何协同工作,以及如何在实际项目中进行整合应用。
Spring MVC、Spring 和 Hibernate 是Java Web开发中的三大主流框架,它们各司其职,共同构建了一个强大而灵活的后端架构。Spring MVC 负责处理HTTP请求并将其路由到相应的控制器,Spring 提供了依赖注入(DI)和面向...
在"SpringMVC+Hibernate+Spring整合实例"中,我们可以看到这三者是如何协同工作的。首先,Spring会初始化并管理所有组件,包括SpringMVC的DispatcherServlet、Controller以及Hibernate的SessionFactory。然后,当...
要实现这一功能,需要依赖Jackson库,特别是Jackson的两个核心组件:`jackson-mapper-asl`和`jackson-core-asl`。 1. Jackson库介绍: Jackson是Java中广泛使用的JSON处理库,它提供了多种功能,如JSON序列化、反...
Spring+SpringMVC+Hibernate 框架集成详解 本文档旨在详细介绍 Spring、SpringMVC 和 Hibernate 框架的集成,旨在帮助开发人员快速了解这三个框架的集成过程。 Spring 框架 Spring 框架是一个 Java 语言的开源...
这个 "springMvc+hibernate Demo" 压缩包文件很可能是为了展示如何将这两个框架整合在一起,创建一个完整的数据驱动的 Web 应用。 **Spring MVC 框架** Spring MVC 是 Spring 框架的一部分,设计用于构建可维护、松...
7. `jackson-module-jaxb-annotations-2.2.1.jar`:这是一个扩展模块,用于支持JAXB注解,使得已经用JAXB注解过的类可以无缝地与Jackson一起工作,无需额外的配置。 三、整合Spring MVC与Jackson 在Spring MVC中...
在"springMVC+Spring3+hibernate4整合实现增删改查demo"中,这三者协同工作,提供了一套完整的解决方案。SpringMVC接收用户请求,Spring管理Bean并处理事务,Hibernate执行数据库操作。测试类用于验证这些功能是否...
Hibernate 是一个流行的对象关系映射(ORM)框架,它允许开发人员将数据库操作与 Java 对象进行解耦,简化了数据库编程。在 Hibernate 4.0 版本中,改进了对 JPA 2.0 的支持,引入了更灵活的查询语言 HQL 和 ...
此外,还需要创建`SessionFactory`,它是Hibernate的主要工作单元,负责创建`Session`对象,`Session`则是与数据库交互的接口。 在MvcSpringTest中,你可能还会看到数据访问对象(DAO)和业务服务对象(Service)的...
本文将详细介绍SpringMVC与Hibernate整合所需的jar文件以及它们在整合过程中的作用。 首先,我们需要理解SpringMVC的核心组件。它包括DispatcherServlet(前端控制器)、HandlerMapping(处理器映射器)、...
在Java Web开发中,Spring MVC和Hibernate是两个非常重要的框架,它们分别负责处理控制器层和持久层的任务。Spring MVC提供了一种模型-视图-控制器(MVC)架构,使得开发者能够有效地组织和管理应用程序的业务逻辑,...
在SpringMVC项目中,Hibernate通常与Spring Data JPA结合使用,实现便捷的数据访问。 【EasyUI】 EasyUI是一个基于jQuery的UI组件库,专为开发人员提供丰富的Web前端控件,如表格、树形结构、对话框、表单等。它...
本项目是基于Spring4、SpringMVC4、Hibernate4和Jackson2.5.0的集成示例,具有详细的中文注释,对于学习和理解这四大框架的协同工作具有极大的帮助。 **Spring4** 是一个全面的Java应用开发框架,它提供了依赖注入...
整合Spring MVC、Spring 3和Hibernate 4是一个涉及多个方面的工作,包括配置文件的设置、实体管理器的获取、数据源的配置等。以下是详细的知识点: 1. 工具和版本选择:在搭建Spring+SpringMVC+JPA+Hibernate平台时...
SpringMVC、Security和Hibernate是Java开发中三个非常重要的框架,它们各自负责应用程序的不同层面,协同工作可以构建出高效、安全且数据管理完善的Web应用。 SpringMVC是Spring框架的一部分,用于构建MVC(Model-...
本文将深入探讨SpringMVC与Hibernate的整合过程以及其中涉及的关键知识点。 1. **SpringMVC框架**:SpringMVC是Spring框架的一个模块,负责处理Web请求。它提供了Model-View-Controller模式的实现,使得开发者能够...
springMVC+maven+hibernate框架,搭建的过程 可以参考 java进阶(五)------springMVC---springMVC+Hibernate+maven完整搭建运行步骤 http://blog.csdn.net/zzq900503/article/details/49892783