Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jsp呈现后的AOP切入点_Java_Spring_Hibernate_Jsp_Aop - Fatal编程技术网

Java jsp呈现后的AOP切入点

Java jsp呈现后的AOP切入点,java,spring,hibernate,jsp,aop,Java,Spring,Hibernate,Jsp,Aop,我有一个奇怪的问题 我需要在服务器交互结束时真正执行代码。因此,如果我使用jsp,我需要在呈现页面之后执行它 有没有办法执行它 我在这个切入点之后试过了 @Pointcut("@annotation(org.springframework.web.bin d.annotation.RequestMapping)") 但它在“returnmodelandview”之后离开了我。我需要结束服务器会话 我之所以想这样做,是因为我需要关闭Hibernate会话,以避免在jsp呈现视图后由于会话关闭而导

我有一个奇怪的问题

我需要在服务器交互结束时真正执行代码。因此,如果我使用jsp,我需要在呈现页面之后执行它

有没有办法执行它

我在这个切入点之后试过了

@Pointcut("@annotation(org.springframework.web.bin d.annotation.RequestMapping)")
但它在“returnmodelandview”之后离开了我。我需要结束服务器会话

我之所以想这样做,是因为我需要关闭Hibernate会话,以避免在jsp呈现视图后由于会话关闭而导致的延迟初始化异常,并且我想避免类似的脚本

<% HibernateManager.getSession().close() %> 


有效地将视图与模型耦合

您可以使用spring mvc拦截器-实现
HandlerInterceptor
完成后(…)
方法。您也可以在过滤器中执行此操作

但你没有两个,原因有二:

  • 不应将未初始化的集合传递给视图。初始化服务层中需要的所有内容,这样就不会出现LazyInitializationException。其实,
  • 即使您决定使用惰性集合,而不是在服务中初始化它们,spring也会为您提供
    openntitymanagerinviewinterceptor
    (和
    Filter
    ),以及
    OpenSessionInViewInterceptor
    (和
    Filter
    )这些功能,完全满足您的需要

谢谢。然而,我不喜欢删除“懒惰”,因为在我看来,懒惰比渴望关系更有好处。(当然,我们需要更仔细地编写代码!)