当前位置: 首页 > 面试题库 >

Spring JSF集成:如何在JSF托管bean中注入Spring组件/服务?

祁刚毅
2023-03-14
问题内容

我了解托管bean的工作方式类似于控制器,因为你的唯一任务是将“视图层”与模型“链接”。

要将bean用作托管bean,我必须声明@ManagedBean注释,这样我就可以直接与bean通信JSF。

如果要在此managedBean中注入某些组件(来自Spring),则有两种可能的方法:

  1. 在ManagedBean中选择属性(例如“ BasicDAO dao”),然后@ManagedProperty(#{"basicDAO"})在该属性上方进行声明。这样做,我是将”basicDAO”Spring中的bean注入ManagedBean中。

  2. 在ManagedBean类中声明为@Controller,然后将同时具有@ManagedBean@Controller批注。在财产上,"BasicDAO dao"我必须@Autowired从Spring 使用。

我的理解正确吗?


问题答案:

通过简单地从中扩展JSF bean,还有另一种在JSF管理bean中使用Spring管理bean的方法SpringBeanAutowiringSupport,Spring将处理依赖项注入。

@ManagedBean // JSF-managed.
@ViewScoped // JSF-managed scope.
public class GoodBean extends SpringBeanAutowiringSupport {

    @Autowired
    private SpringBeanClass springBeanName; // No setter required.

    // springBeanName is now available.
}


 类似资料:
  • 我理解托管bean的工作方式类似于控制器,因为您唯一的任务是将视图层与模型“链接”。 要将bean用作托管bean,我必须声明注释,这样我就可以直接与bean进行JSF通信。 如果我想在这个managedBean中注入一些组件(来自Spring),我有两种可能的方法: > 选择ManagedBean中的属性(如“basicdao dao”)并在该属性上方声明。为此,我在ManagedBean中注入

  • 问题内容: 我正在使用框架JSF 2.1,Spring 3.1.1.Release,Hibernate 3.2.1进行Java EE项目。现在我正处于整合这三个方面的阶段。构建成功,我使用了tomcat服务器7。但是我在首页上看到了这个异常。 hibernatehibernate.cfg.xml hibernate.reveng.xml AnneeDao.java AnneeHibernateDa

  • 我在演示应用程序中使用了JSF2+Spring3.1+Hibernate4,我想使用注释来创建会话工厂,但是我的DAO类没有在Jsf托管Bea类中初始化,所以我得到了空指针异常。我的ApplicationContext.xml 现在,在Managedbean方法中,DAO对象为null,我得到的是null指针异常

  • 主要内容:实例,运行测试结果以下代码显示了如何进行bean注入。 我们先定义一个消息bean,它有一个字符串属性来存储消息。 然后我们再定义另一个托管bean,并使用注解注入。 实例 打开 NetBean8.2,创建一个名为: InjectManagedBeans 的工程,并加入以下文件代码。 以下是文件:UserBean.java 中的代码 - 以下是是文件:index.xhtml 中的代码 - 以下是文件:Message

  • 通常,如果我必须在Spring中注入服务,我会使用 和

  • 我正在开发一个遗留的JSF应用程序,我们正在慢慢地将其移植到Spring MVC。我们正在使用Spring Security来控制登录信息。在用户登录之后,JSF页面全局地实例化一个在任何地方都使用的会话作用域bean。我想更改应用程序,这样我们就可以先进入用Spring MVC开发的页面。 我尝试的一种方法是将bean转换为spring bean,并将其注入JSF,但不幸的是,这需要对bean进