当前位置: 首页 > 知识库问答 >
问题:

将参数注入Beans、CDI bean VS JSF bean

丁阎宝
2023-03-14

经过一些实验,我已经能够使用@Managed属性和一些EL将我的GET参数注入到@ManagedBean(因此是JSF)bean中。

现在,除了从FacesContext.getCurrentInstance()读取参数映射的方法之外。getExternalContext(),我无法将GET参数注入@Named(即CDI-)bean。

因此,我一直在阅读有关JSF豆和CDI豆的优缺点。简而言之,我被两个问题困住了:第一。与 CDI bean 相比,使用 JSF bean 时会遇到任何缺点吗?2nd. 如果是这样,有没有一种干净的方法可以将我的 GET 参数注入到 CDI bean 中?

共有1个答案

许永年
2023-03-14

我希望我不会在这里引起一场激烈的争论,但是可以肯定地说,CDI作用域和依赖注入机制比JSF作用域覆盖了更多的领域。一般来说,使用CDI作用域会更好——但是在这里,人们几乎可以任意选择细节。

关于你的问题:缝焊带来了超文本传输协议参数注入。看看这个。

更新:如果你害怕将焊锡集成到你的项目中(不要害怕!),看看相关的源代码,它有魔力。你可以很容易地将其复制到你的项目中——只是焊锡背后的开发人员在他们的脑海中有一些比你在现场可能想出的更多的基石。

 类似资料:
  • 我尝试使用Jersey Jetty和Spring来设置一个简单的REST应用程序,为自动连接设置beans。我也在通过Gradle管理这件事。 我有两个主要endpoint< code>/users和< code>/greeting。 上的仅返回文本响应并正常工作。那里没有自动安装的依赖项。 然而,如果我在< code>/usersendpoint上执行get,我将使用一个API类返回响应,该类应

  • 您可以自由地使用任何标准的Spring Framework技术来定义bean及其注入的依赖项。 为简单起见,我们经常发现使用@ComponentScan(找到你的bean)并使用@Autowired(做构造函数注入)效果很好。 如果按照上面的建议构建代码(在根包中定位应用程序类),则可以添加不带任何参数的@ComponentScan。 所有应用程序组件(@Component,@Service,@R

  • Action 参数注入是指为 action 方法传入参数,可以省去 getPara(...) 代码直接获得参数值,以下是代码示例: public class ProjectController extends Controller { public void index(Project project) { project.save(); render("ind

  • 专家/大师/朋友 我们正在使用Spring 3.2、JPA 2、Hibernate 4.2组合,并面临这个奇怪的空指针问题,同时试图将任何Spring注释的bean注入到EmtyInterceptor中,实现如下所示。我们试着给这个豆子和Spring的豆子注释,但是没有成功。 非常感谢您对解决这个难题的任何帮助。 在应用程序的其他地方,注入就像一个魅力,没有任何问题。这是我们的应用程序上下文。xm

  • 在我的一个Vaadin视图中,我试图通过使用@Inject注入驻留在另一个项目(bll)中的业务对象来获取它。 瓦丁观点: 我不能这样做,当然,bananaService对象在运行时是空的,因为我没有地方对包进行组件扫描。 我正在使用注释,所以我没有web.xml在我的Vaadin Web项目中,我甚至没有WEB-INF文件夹。 我也知道有一些替代方案,比如CDI-Utils和Vaadin CDI

  • 问题内容: 我已经用策略模式实现了一个程序。所以我有一个在某些地方使用的接口,并且可以替换具体的实现。 现在我要测试该程序。我想以类似的方式做。编写一次测试,针对该接口进行测试。应在测试开始时注入具体的接口实现,以便我可以轻松地替换它。 我的测试类看起来与此类似: 在开始测试时,必须使用参数化的构造器来注入具体的策略实施。 现在我没有让TestNG运行它并注入具体的实现实例。我试图与继承几种方法,