加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

JSF-SPRING-HIBERNATE架构 – 支持bean相关的最佳实践

发布时间:2020-12-15 01:30:51 所属栏目:大数据 来源:网络整理
导读:我正在开发一个Web项目,经过大量研究后,我决定继续使用JSF Primefaces,Spring和Hibernate方法.在设计我的项目的架构时,我已经完成了以下方法: 演员 > JSF PrimeFaces页面>支持Bean >服务Bean > Dao >过冬 Service Bean和DAO是依赖注入的spring bean. 我现在

我正在开发一个Web项目,经过大量研究后,我决定继续使用JSF Primefaces,Spring和Hibernate方法.在设计我的项目的架构时,我已经完成了以下方法:

演员 – > JSF PrimeFaces页面—>支持Bean – >服务Bean – > Dao – >过冬

> Service Bean和DAO是依赖注入的spring bean.

我现在关注的是关于支持bean:
我打算为UI页面使用多个支持bean,具体取决于我需要呈现的页面类型.

现在举例来说:对于新用户注册页面,我有UserProfile.xhtml,它使用UserBackingBean. UserBackingBean具有由spring注入的UserServiceBean. UserServiceBean具有由Spring注入的UserDao.

现在在UserBackingBean中,当用户从UserProfile.xhtml输入表单数据时,我将必须填充User.java域(ORM)对象.

a)最佳做法是什么?我应该在UserBackingBean的构造函数中初始化User.java吗?这是正确的方法吗?如果有其他出路,请建议吗?

b)另外请在上面的架构中建议我为我的项目决定了什么?这是正确的方法吗?

最佳答案
我遵循的一般规则是事务边界在服务bean中标记,因此我不喜欢在服务之外修改hibernate POJO,因为我不知道是否已经运行了事务.所以从支持bean我会调用服务层传递服务层需要构建hibernate pojo并保存,更新它,等等的参数.

另一种方法是让你的支持bean实现服务层定义的接口,然后将支持bean传递给服务层.例如.

public interface UserInfoRequest {
     public String getName();
}


@Service
public class SomeSpringService {

   @Transactional(.....) 
   public void registerNewUser(UserInfoRequest request)
   {

   }

}

public class SomeBackingBean implements UserInfoRequest {

    private SomeService someSpringService; 

    public void someMethodBoundToSJF()
    {
         this.someSpringService.registerNewUser(this); 
    }
} 

关于你的上一个问题,我不是JSF的粉丝,我认为JSF基本上是有缺陷的,因为它是一个基于服务器组件的框架.所以我对JSF的论证是针对基于服务器端组件的框架的泛型参数.

基于服务器端组件的框架的主要缺陷是你不能控制组件输出的内容,这意味着你会遇到组件的外观,如果你想要看起来不同的东西,你必须编写自己的组件或者你有修改现有组件. Web浏览器目前正在快速发展,增加了可以真正提高应用程序UI质量的新功能,但对于那些必须直接编写HTML,CSS和JavaScript的功能,服务器端组件使这一点变得更难.

客户端组件体系结构在这里比在服务器端执行组件要好得多.这是我推荐的堆栈.

客户端架构:

> jquery.js – 使所有浏览器看起来与JavaScript相同的基本库
> backbone.js underscore.js – 基于高级客户端组件的体系结构
> handlebars.js – 用于客户端模板
> Twitter bootstrap – 获得一套体面的CSS& amp;小部件

您编写的HTML,CSS和JavaScript代码组织为与服务器端通信的主干视图
使用AJAX的模型.您可以完全控制客户端用户体验
结构真正做出可靠的可重用代码.

服务器端架构:

> Annotation Driven Spring MVC,Services和Dao(@ Controller,@ Service,@ Repository)
>按类型自动装配的Spring组件扫描(@Autowired,@ Inject)
> AspectJ加载时间编织或编译时间编织
>休眠
> Tomcat 7
> JSP作为Spring MVC的视图技术(是的,但它很难以创造,但你不会创造
jsp页面太多,主要用于usng<%@inculde>指示

工具:
? – Spring Tool套件
? – JRebel(这样你就不必启动和停止服务器)它确实非常值得花钱
? – Tomcat 7

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读