1

考虑一个带有托管 bean FooBean.java 的 JSF Web 应用程序。我在 faces-config.xml 文件中声明了这个“FooBean”。现在,如果我想为 FooBean 的方法添加 Spring AOP 建议,我该怎么做?

  • 我应该添加一个 applicationContext.xml 文件并在其中声明托管 bean 吗?
  • 或者即使我没有在 Spring 配置文件中声明托管 bean,它也会起作用吗?

注意:我创建了一个 Aspect bean 并在切面 bean 中定义了一个像 @Pointcut("within(dummy.web.reporting..*)") 的切入点。

4

2 回答 2

3

您可以从 web.xml 中加载常规的 spring 上下文 xml 文件,如下所示:

<context-param>
   <param-name>contextConfigLocation</param-name>
   <param-value>/WEB-INF/classes/spring-context.xml</param-value>
</context-param>

然后,您可以在此处以常规 spring 方式定义您的托管 bean,您仍然可以在 jsps 中通过 id 引用这些 bean。

您还可以在您的系统中使用所有标准 Spring AOP 内容spring-context.xml

于 2009-05-05T14:16:26.230 回答
1

我在 Spring JSF 应用程序中大量使用 Spring AOP,我宁愿建议您通过 Spring 容器加载 JSF bean,并让 Spring 管理 bean 的范围。在这种情况下,所有 bean 都将由 Spring 容器加载,因此实现 Spring AOP 将变得非常容易。

有关此类 Spring-JSF 集成的更多信息 http://xebee.xebia.in/2011/10/31/spring-jsf-integration-made-easy-clean-using-spring-annotations/

于 2011-11-03T04:43:10.450 回答