`
pengjj2
  • 浏览: 138449 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

springAOP后对象代理和hibernate不识别问题

 
阅读更多

场景:自定义注解,AOP拦截,处理前置业务。然后从spring中getBean,然后将此bean存入数据库,将报noMapping entity错误。

原因:AOP拦截,因为bean不是用的接口,AOP将动态代理此bean。如果从spring中getBean,那么spring将扫描此bean,发现注解,然后代理此对象。因为spring都是新产生的对象,采用prototype的形式。那么当前对象将转变成代理对象,hibernate的映射严格对照xml,将不认识此代理对象,报错。

解决:AOP拦截接口;在方法中new一个新对象,将代理对象的值拷贝到新对象中,再持久化;避免将该对象持久化。

分享到:
评论

相关推荐

    SpringAOP整合Hibernate并使用事务

    在IT行业中,Spring框架是Java企业级应用开发的首选,其强大的依赖注入(IOC)和面向切面编程(AOP)功能使得复杂的应用管理变得轻松。而Hibernate作为一款优秀的对象关系映射(ORM)框架,简化了数据库操作。将...

    软件依赖包(Spring AOP+Hibernate Transaction)

    Spring AOP使用代理模式实现,可以是JDK动态代理或CGLIB代理,具体取决于目标对象是否实现了接口。通过切点(Pointcut)和通知(Advice),开发者可以精确地控制何时及如何执行这些关注点。 接下来,Hibernate ...

    spring的二次代理原因及如何排查

    当一个对象被Spring AOP代理后,如果这个代理对象又被其他对象再次代理,就形成了所谓的“二次代理”。这种情况通常出现在以下场景: 1. 使用Spring的AOP代理,比如事务管理,然后又使用了其他框架或库(如Hibernate...

    Spring+Struts+Hibernate应用

    Spring、Struts 和 Hibernate 是 Java 开发领域非常流行的三个框架,它们分别在不同的层面提供了强大的支持:Spring 主要在 IoC 和 AOP 方面提供服务;Struts 是 MVC 架构的一种实现,用于构建 Web 应用;Hibernate ...

    spring测试、struts测试、hibernate测试、软件测试、网站测试、利用JBuilder测试的单元测试技术

    Spring测试库提供了对Spring应用的全面支持,包括上下文加载、AOP代理模拟和数据源配置。你可以使用JUnit或TestNG作为基础测试框架,结合Spring TestContext Framework来创建和管理测试上下文,以便于隔离和测试单个...

    struts2+spring+hibernate整合策略

    1. **识别核心问题**:明确应用的核心功能和业务需求,这有助于确定哪些技术或模式最适合解决特定问题。 2. **利用成熟的设计模式**:设计模式是前人总结的经验教训,它们为常见的问题提供了经过验证的解决方案。 3....

    Struts2+Spring+Hibernate整合的例子.doc

    Spring框架则是一个全面的企业级应用框架,它提供了依赖注入(DI)和面向切面编程(AOP)等功能,用于管理对象的生命周期和解耦应用程序组件。而Hibernate是一个对象关系映射(ORM)框架,简化了数据库操作,使得...

    spring核心思想

    Spring提供了两种实现AOP的方式:基于代理的AOP(使用JDK动态代理或CGLIB)和基于注解的AOP。例如,`@Aspect`用于定义一个切面,`@Before`、`@After`、`@Around`等注解用于指定在哪个方法执行前、后或前后执行切面...

    Spring学习笔记

    本篇将详细探讨Spring框架中的关键概念和技术,包括IoC控制反转、AOP面向切面编程、自动装配和代理机制。 一、IoC(Inversion of Control,控制反转) IoC是Spring的核心特性之一,它将对象的创建和管理权交给了...

    s2sh整合常见问题

    CGLIB是Spring AOP在无法使用Java代理时用于创建代理对象的库。 4. **JTA(Java Transaction API)缺失**: 异常 4 报告 `NoClassDefFoundError` 与 `TransactionManager` 类有关,这表明缺少对事务管理的支持。要...

    spring4_day03讲义2

    AOP(Aspect Oriented Programming)是Spring框架的重要组成部分,它提供了一种模块化和解耦代码的方式,通过切面(Aspect)来封装横切关注点(例如日志、事务管理),使得业务逻辑代码不受这些通用功能的影响。...

    JsfSpringHbm:Primefaces 5、Spring 4、Spring Security 3 和 Hibernate 4 应用程序,用于移动设备的用户代理检测

    本文将深入探讨一个结合了Primefaces 5、Spring 4、Spring Security 3 和 Hibernate 4 的应用程序框架,该框架特别关注对移动设备的用户代理检测,从而实现优秀的用户体验。 1. **Primefaces 5**:Primefaces是一个...

    Spring常见面试题(35道)

    Spring是一个全面的企业级应用开发框架,它以轻量级、非侵入式为特点,引入了控制反转(IoC)和面向切面编程(AOP)的概念,极大地简化了Java应用的开发。Spring的主要特性包括: 1. **控制反转(IoC)与依赖注入...

    Spring框架小结

    在Spring框架中,AOP通过预编译方式或运行时动态代理来实现对程序功能的统一维护,例如事务管理、日志记录、性能监控等。 #### 主要应用场景 - **事务管理**:在业务逻辑中添加事务边界,确保数据一致性。 - **...

    Spring教程

    AOP是Spring提供的另一重要特性,它支持面向切面编程,允许开发者定义“切面”(aspect),即跨越多个对象和方法的逻辑,如日志、事务管理等。Spring通过动态代理机制实现AOP,使得这些关注点可以与业务代码解耦,...

    通过识别方法注解,自动切换主备数据源DynamicDataSource

    在Java中,我们可以通过Spring框架来实现这一功能,因为Spring提供了强大的AOP(面向切面编程)和IoC(控制反转)特性,使得我们可以很方便地定义和管理数据源。 标题中的"通过识别方法注解,自动切换主备数据源...

    spring-4.1.6版本Jar包,目前spring官网最新

    Spring的核心模块包括IoC(Inversion of Control)容器,它管理对象的生命周期和依赖关系;AOP(Aspect Oriented Programming)模块,支持面向切面编程,用于实现如日志、事务管理等横切关注点;还有DAO(Data ...

    SSH框架面试题.pdf

    Spring通过AOP代理实现了面向切面编程的功能,允许开发者通过配置或注解的方式将这些横切关注点织入到正常的业务逻辑中,而不必在业务代码中显式实现。 24. **解释Spring MVC的控制器(Controller)** Spring MVC...

    J2EE面试题

    Spring提供了Proxy和CGLIB两种动态代理方式实现AOP。 5. **SqlSessionFactory**:SqlSessionFactory是MyBatis中的核心对象,对应一个数据库源,通常只创建一次,用于获取SqlSession,处理数据库事务。 6. **Struts...

Global site tag (gtag.js) - Google Analytics