Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将OmniFaces与Spring集成

如何将OmniFaces与Spring集成
EN

Stack Overflow用户
提问于 2017-01-01 07:27:54
回答 1查看 2.8K关注 0票数 6

我已经找到了一些关于将JSF技术与Spring集成的教程,但是让OmniFaces使用Spring似乎是一项相当复杂的工作。把这两者结合在一起是个好主意吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-02 00:10:25

首先,Java和Spring是相互竞争的框架。一般来说,选择一个或另一个是最容易的,而不是试图混合它们。从长远来看,这将减少初学者的困惑,减少互操作性方面的烦恼。

Java框架面向Java容器(WildFly、TomEE、Payara等),而Spring框架面向赤骨servlet容器(Tomcat、Jetty等)。JSF虽然是Java框架的一部分,但最初并不需要太多其他Java工件作为依赖项,这样它也可以轻松地在简单的servlet容器中运行。只有JSTL是Java的另一部分,手动安装在一个简单的servlet容器中非常简单。

从JSF2.0版本开始,添加了一个可选Bean验证(JSR303)依赖项,它也很容易安装在一个简单的servlet容器中。

由于JSF版本2.2,添加了一个可选的CDI依赖项,这对于Weld来说也很容易安装在一个简单的servlet容器中。然而,麻烦来了: Spring只部分支持CDI。支持来自javax.inject.*的任何内容,但不支持来自javax.enterprise.context.*的任何内容。这迫使用户少或更多地使用Spring管理的bean,而不是CDI管理的bean。

根据未来的JSFVersion2.3,JSF自己的@ManagedBean工具将被废弃,CDI依赖将被要求,并将添加更多的可选Java依赖项: WebSocket (JSR356)和JSONP (JSR353)。完全需要CDI并不能很好地配合Spring,因为他们拒绝完全实现CDI。

反过来,OmniFaces完全面向JSF。OmniFaces 1.x是针对JSF2.0的,不需要CDI。OmniFaces 1.1x甚至没有CDI。OmniFaces 2.x是针对JSF2.2的,其不同之处在于CDI是必需的,而不是可选的。之所以这样做,是因为OmniFaces的设计考虑了“最佳实践”,并试图迫使用户迁移到CDI进行bean管理,特别是因为JSF本身也将朝着使CDI成为必需的方向前进,因此OmniFaces 2.x用户将更好地为未来做好准备。

考虑到上面解释的CDI问题,您现在可能已经意识到,如果您想要使用Spring而不是Java,最好选择不含CDI的OmniFaces 1.1x。最新的1.1x版本是1.14,这恰好集成为JoinFaces的一部分。

JoinFaces是什么? 这个项目使JSF能够在JAR打包的中使用。 它会自动配置PrimeFaces、PrimeFaces扩展、BootsFaces、ButterFaces、RichFaces、OmniFaces、AngularFaces、Mojarra和MyFaces库,以便在嵌入式Tomcat、Jetty或Undertow容器上运行。

虽然我不是Spring的人,也无法从自己的经验中判断,但我认为JoinFaces是您最好的选择,以防您想继续使用Spring + JSF。

请注意,虽然JoinFaces站点表示支持CDI注释,但这并不意味着它支持CDI实现,它实际上只支持来自javax.inject.*包的注释

另请参阅:

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41416546

复制
相关文章
Mybatis与Spring集成:SqlSessionTemplate[通俗易懂]
TransactionSynchronizationManager.bindResource:在调用一个需要事务的组件的时候,管理器首先判断当前线程有没有事务,如果没有事务则启动一个事务,并把事务与当前线程绑定。Spring使用TransactionSynchronizationManager的bindResource方法将当前线程与一个事务绑定,采用的方式是ThreadLocal。
全栈程序员站长
2022/09/04
7100
Spring Cloud Security与Spring Cloud的集成
Spring Cloud Security 是一款基于 Spring Cloud 的安全框架,它提供了一些重要的安全组件和服务,包括 OAuth2、JWT、RBAC 等,以便用户构建安全的分布式系统。
堕落飞鸟
2023/04/13
1.5K0
Spring Cloud Sleuth与Prometheus集成
Spring Cloud Sleuth是一个分布式跟踪解决方案,可以帮助开发人员诊断和调试分布式系统中的问题。而Prometheus是一个开源的监控系统和时间序列数据库,可用于记录和查询系统指标数据。将Spring Cloud Sleuth与Prometheus集成,可以帮助开发人员更好地理解其应用程序的性能,以及在必要时进行故障排除。
堕落飞鸟
2023/04/12
5890
Activiti学习——Activiti与Spring集成
与Spring集成 基础准备 目录结构 相关jar包 Activiti的相关jar包  Activiti依赖的相关jar包  Spring的相关jar包  Spring依赖的相关jar包  本示例相关
庞小明
2018/03/08
1.8K1
Activiti学习——Activiti与Spring集成
Spring Cloud Stream与Kafka集成
Spring Cloud Stream是一个用于构建消息驱动的微服务的框架,它为Spring Boot应用程序提供了与消息代理集成的声明式模型。在本文中,我们将探讨如何使用Spring Cloud Stream与Kafka集成,以及如何构建一个使用Kafka作为消息代理的Spring Boot应用程序。
堕落飞鸟
2023/04/12
1.4K0
Spring同时集成JPA与Mybatis
ORM ORM的出现,使得关系型数据库映射成了对象;简单来说,有了ORM之后,JAVA程序员从面向JDBC编程转化成面向JAVA对象编程。 Spring ORM Spring对ORM的解决方案主要体
智慧zhuhuix
2020/08/14
4K0
Spring同时集成JPA与Mybatis
Spring学习笔记-06. 如何与Spring集成
对于组件的全局的初始化,可以使用前面所说的ImportBeanDefinitionRegistrar这个方法来指定初始化方法,以开源的队列QMQ的源码为例:
付威
2020/02/17
4350
Spring Cloud Security与Spring Cloud的集成示例
使用 Spring Initializr 创建一个 Spring Cloud 项目,选择 Spring Boot 版本和其他依赖项。
堕落飞鸟
2023/04/13
5600
使用SchedulerFactoryBean集成Quarz Job与Spring
大家好,又见面了,我是你们的朋友全栈君。本文介绍Quartz Job与Spring的集成。
全栈程序员站长
2022/08/31
9780
Spring Cloud Stream与RabbitMQ的集成
Spring Cloud Stream 是一个用于构建基于消息的微服务应用程序的框架。它支持多种消息中间件,包括 Apache Kafka,RabbitMQ 和 Apache RocketMQ。在这篇文章中,我们将重点介绍 Spring Cloud Stream 如何与 RabbitMQ 集成。
堕落飞鸟
2023/04/12
1.6K0
Spring 事务与ORM的自研与集成
Spring 事务管理通过配置@Transactional注解即可完成, 非常方便;
一个架构师
2022/06/20
6430
Shiro框架学习,Shiro与Spring集成
Shiro的组件都是JavaBean/POJO式的组件,所以非常容易使用Spring进行组件管理,可以非常方便的从ini配置迁移到Spring进行管理,且支持JavaSE应用及Web应用的集成。
用户1289394
2021/04/20
6570
Shiro框架学习,Shiro与Spring集成
Spring如何与Tomcat框架进行集成
本节我们讲究如何利用Tomcat的ContextLoaderListener扩展接口来把Spring框架与Tomcat进行连接起来。
田维常
2019/07/31
2.6K0
Spring如何与Tomcat框架进行集成
Spring Cloud Sleuth与Prometheus集成-示例
现在,假设我们有一个简单的Spring Boot应用程序,其中有一个REST端点返回Hello World消息。我们将添加Sleuth跟踪和Prometheus指标,以记录应用性能并导出到Prometheus。
堕落飞鸟
2023/04/12
6980
Mybatis03与spring的集成
目录 前言: Spring集成MyBatis实现步骤 1.添加相关依赖 注:spring 5.0.1.RELEASE有冲突         1.1 添加spring相关依赖(5.0.2.RELEASE)🎁🎁🎁🎁🎁🎁         1.2 添加mybatis相关依赖🎨🎨🎨         1.3 spring整合mybatis(1.3.1)👑👑👑         1.4 添加dbcp2连接池🎃🎃🎃         1.5 添加日志配置(2.9.1)🎇🎇🎇         1.6 其他🎀🎀🎀 注:使用myb
天蝎座的程序媛
2022/11/18
3780
Mybatis03与spring的集成
Spring Cloud Stream与Kafka集成示例
下面是一个完整的示例,它使用Spring Cloud Stream和Kafka来创建一个简单的消息处理器和发布器:
堕落飞鸟
2023/04/12
1.2K0
Spring Boot(十三)RabbitMQ安装与集成
RabbitMQ是一个开源的消息代理软件(面向消息的中间件),它的核心作用就是创建消息队列,异步接收和发送消息,MQ的全程是:Message Queue中文的意思是消息队列。
磊哥
2018/12/12
1.2K0
TDDL与Spring Boot集成Version报错——跟踪与解决
先说背景:公司采用diamond+tddl,这套技术来做web管理。本人处于好奇率先体验了下spring-boot,于是就有了spring-boot+tddl的组合。但是jar包上线后,屡屡发现一条error日志不痛不痒的出现在日志文件中,处于程序员的本能,怎么能允许error日志出现在我的系统中呢! 于是,展开了一段tddl与spring-boot的爱恨之旅... 挣扎期 首先看错误提示: 2017-09-27 11:15:58,428 [main] ERROR com.taobao.tddl.co
用户1154259
2018/01/17
1.8K0
TDDL与Spring Boot集成Version报错——跟踪与解决
30.MyBatis插件原理与Spring集成
myBatis启动时扫描<plugins>标签,注册到Configuration对象的InterceptorChain中。通过setProperties将参数放到property里。
编程之心
2020/08/12
6940
30.MyBatis插件原理与Spring集成
Spring与Hibernate3集成
        Spring内置了一组DAO组件,可以针对JDBC、Hibernate、iBATIS等常见数据访问技术提供简化操作,让我们把精力集中在核心的数据操作上。
用户10175992
2022/11/15
7790
Spring与Hibernate3集成

相似问题

如何将GraphiQL与Spring集成?

23

如何将Spring与logback集成?

26

如何将spring session与spring saml集成?

11

如何将ReactJS与spring集成

217

如何将ScalaTest与Spring集成

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文