- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个关于 spring/AspectJ AOP 的相关问题。我有一个典型的记录器方面,它记录从我的应用程序中的任何类抛出的异常,包括服务、daos、 Controller 和 webflow 操作...
@Aspect
public class AspectLogger {
@AfterThrowing(pointcut = "execution(* com.myapp..*.*(..))", throwing = "t")
public void logGustavoException(JoinPoint joinPoint, Throwable t) {
Log logger = LogFactory.getLog(joinPoint.getTarget().getClass());
logger.error(t.getMessage(), t);
}
}
在我的应用程序上下文中,我有一个同样典型的配置...
<context:annotation-config />
<!-- AOP logging config -->
<aop:aspectj-autoproxy>
<aop:include name="aspectLogger" />
</aop:aspectj-autoproxy>
<bean id="aspectLogger" class="com.myapp.AspectLogger" />
这在大多数情况下工作正常,我遇到的问题是实现接口(interface)的 webflow 操作和 Controller 。
1 - 实现接口(interface)的 Controller ......
我们的一个 Controller 实现了一个接口(interface),该接口(interface)定义了一个方法,并定义了几个用作@RequestMapping 处理程序的公共(public)方法...
@Controller
public class AmazingController implements OutstandingInterface {
// implements the method from OutstandingInterface
@Override
public Object doSomethingOutstanding(){
...
}
@RequestMapping(value="/amazingUrl.htm", method = RequestMethod.GET)
public String doSomethingAmazing(HttpSession session, ModelMap model) {
return "anAmazingViewName";
}
...
}
这里的问题是,由于 Controller 实现的接口(interface)未定义其所有公共(public)方法(即 Controller 请求映射方法),因此为 Controller 创建了一个代理,该代理仅代理“doSomethingOutstanding”方法来自 OutstandingInterface。因此,当请求进入/amazingUrl.htm 时,Spring 不会将其路由到适当的请求处理程序——就好像请求映射不存在一样。 我已经通过为 Controller 定义一个接口(interface)来解决这个问题,该接口(interface)扩展了 OutstandingInterface 并且还定义了 Controller 所需的请求处理程序方法,但对我来说似乎奇怪/错误的是必须为 Controller 定义一个接口(interface)只是为了AspectJ 的东西不会“隐藏”请求处理程序...
@Controller
public interface IAmazingController extends OutstandingInterface{
@RequestMapping(value="/amazingUrl.htm", method = RequestMethod.GET)
public String doSomethingAmazing(HttpSession session, ModelMap model);
}
...
public class AmazingController implements IAmazingController {
@Override
public Object doSomethingOutstanding(){
...
}
@Override
@RequestMapping(value="/amazingUrl.htm", method = RequestMethod.GET)
public String doSomethingAmazing(HttpSession session, ModelMap model) {
return "anAmazingViewName";
}
...
}
2 - Webflow 操作
第二期很相似。引入 AspectJ 配置后,我的 webflow Action 类都没有被正确地 Autowiring ——我一直收到“找不到 FantasticAction 类型的 bean”之类的错误。同样,我为所有 Action 类引入了接口(interface),这解决了问题,因为它是在运行时注入(inject)的代理,而不是实际的操作实现类。
最后... 两种情况下的问题是 - 是否有一种方法可以解决这些 AspectJ 问题,而不必为我想建议的每个类定义接口(interface)?
最佳答案
你应该在你的类路径中添加 CGLIB 依赖,这样你就不需要创建接口(interface)来使用 AOP
查看 doc .
关于spring - Spring Controller 和 Webflow 操作的 AspectJ autoproxy 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11314099/
首先,我不知道如何为spring webflow配置restful url请求, 例如,如何在输入地址时调用我的 webflow: http://localhost/app/order/edit/10
我试图在 Spring 返回到我的主要流程,只需单击一个按钮即可从我的任何子流程中返回。 当我使用 它只是转到上一个流程,这也是应用程序中的一个子流程。 有任何想法吗? 最佳答案 您只需要在调用流中的
我正在使用 spring webflow,但我需要在使用转换 ==> 评估表达式访问的方法中访问我的 HttpSession。 (所以在包含我的流程的 xml 文件中) 到目前为止,我还没有找到一种方
(来自 SpringSource forum。) 当HttpSession已过期并且用户重新提交流程中的页面,他/她将被送回流程的开头。我想添加到此行为的只是一条消息,解释它发生的原因。 “你没有事件
我正在使用 spring webflow 1.0。我正在上传一个 csv 文件,对其进行解析并在继续之前显示结果。用户可以选择下载包含未通过验证的记录的 csv 文件。当我单击 JSP 中的链接下载此
获取 Spring Webflow 生成的 FLOW ID 完整列表的最佳方法是什么? 这是我的配置: [更新 1] 我应该澄清一下,我想在 Java 代码中执行此操作,而不是通
我有以下情况。我有一个按以下方式配置的 CommonsMultipartResolver bean。 我在 Spring Web Flow View 状态 jsp 中有一些文件上传字段。 如果文件
给予 ... 在jsp View 中我可以通过以下方式成功获取person ${person} 但是当我放入 requestScope 而不是 viewScope ${person}
我的流程中有一些输入,即 我想在最终状态中重定向到取决于此输入的位置。我正在尝试以下操作: 这是行不通的(webflow 不会用它的值替换 ${someInput} (它将它视为标准字符串。您知道
我有一个使用 Webflow 1.0 和 Spring 2.0 构建的项目。我们想升级到 Spring 3,但这需要 Webflow 2.X。 我已经更新了项目中的所有 Spring 和 Webflo
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
首先,我使用 spring webflow 和一些 spring javascript 来简化 ajax 调用。 截至目前,我让 ajax 调用 webflow 以显示适当的片段。 所以我试图使用 S
我正在研究 spring webflows。我的应用程序中有两个 webflow,一个用于添加人员详细信息,另一个用于修改人员详细信息。两个流程都运行良好。现在我想将参数传递给我的修改流程并访问它,以
希望在使用 grails webflow 时使 URL SEO 友好。它对 grails 使用的约定非常有限制,并且很难绕过它的构建方式。 例如,我在名为 FooController 的 Contro
我有两个 Controller ,每个 Controller 都有一个流程。在我的菜单中,有一个指向流程的链接。如果我在流#1中并单击流#2的链接,Grails将向我展示流#1的 View 。 我发现
Grails菜鸟在这里... 如何获取 Grails webflow 状态中的状态名称?我正在使用 Grails WebFlow 和 jQueryMobile 对移动应用程序进行原型(prototyp
我正在尝试使用Ajax请求过渡到WebFlow的下一个状态。但是它保持相同的状态,并返回GSP作为对该状态的响应,而我期望下一个状态的GSP。 以下是WebFlow代码: def gettingSta
我错过了一些东西...... 我有一个 Grails 网络流程,如下所示:- def childFlow = { start { action {
当我提交表单时,我想发送简单的 boolean 值。我不想在 View 状态下创建特殊模型。 所以我的问题是,我可以在没有模型的情况下传递值吗,因为它是使用 spring webflow 的简单单个值
我在一个应用程序中使用 Webflow 2.3.2,并且用户可以在绑定(bind)模型对象的列表中添加/删除一个步骤(他们只是在修改后返回到当前步骤)。例如我的对象可能看起来像这样: public c
我是一名优秀的程序员,十分优秀!