primefaces

最近,我的朋友问我如何构建轻量级的Java Web应用程序。 许多Java Web开发人员会选择Spring和Hibernate来构建传统的Web应用程序。 但是,它可能不够轻巧。 我建议他尝试使用Guice和MyBatis构建应用程序框架。 尽管Spring比Guice功能更丰富,但我承认Guice更轻巧且易于使用。 MyBatis还是一个轻量级SQL映射框架。 它可以很好地与Guice框架集成。

在这里,我将尝试使用PrimeFaces,Guice和MyBatis建立一个简单的Web应用程序。 我希望我的朋友可以学习如何做。

集成MyFaces和PrimeFaces很简单。 只需从MyFaces网站和PrimeFaces网站获取JARS文件。

对于MyFaces,只需将以下示例配置添加到web.xml中。

<display-name>TestGuice</display-name>
<context-param><param-name>facelets.DEVELOPMENT</param-name><param-value>false</param-value></context-param><context-param><param-name>facelets.REFRESH_PERIOD</param-name><param-value>2</param-value></context-param><context-param><param-name>javax.faces.CONFIG_FILES</param-name><param-value>/WEB-INF/faces-config.xml</param-value></context-param><context-param><param-name>javax.faces.STATE_SAVING_METHOD</param-name><param-value>client</param-value></context-param><context-param><param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name><param-value>resources.application</param-value></context-param><context-param><param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name><param-value>true</param-value></context-param><context-param><param-name>org.apache.myfaces.AUTO_SCROLL</param-name><param-value>false</param-value></context-param><context-param><param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name><param-value>false</param-value></context-param><context-param><param-name>org.apache.myfaces.ERROR_HANDLING</param-name><param-value>false</param-value></context-param><context-param><param-name>org.apache.myfaces.EXPRESSION_FACTORY</param-name><param-value>org.jboss.el.ExpressionFactoryImpl</param-value></context-param><context-param><param-name>org.apache.myfaces.PRETTY_HTML</param-name><param-value>false</param-value></context-param><welcome-file-list><welcome-file>index.do</welcome-file></welcome-file-list><servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>org.apache.myfaces.webapp.MyFacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.do</url-pattern></servlet-mapping>

对于PrimeFaces,应该没有配置。 如果要使用PrimeFaces主题,可以在web.xml中添加以下上下文参数。

<context-param><param-name>primefaces.THEME</param-name><param-value>glass-x</param-value></context-param>

Google Guice将用作IOC容器。 服务类和SQL映射器类的依赖注入通过Guice完成。 为了与JSF集成,我建议仅添加一个ServletContextListener即可。

在您的web.xml中添加以下配置:

<listener><listener-class>org.borislam.GuiceContextListener</listener-class></listener>

在ServletContextListener内部,只需创建一个Guice Injector并将其放在ServletContext中:

public class GuiceContextListener implements ServletContextListener {public void contextDestroyed(ServletContextEvent servletContextEvent) {ServletContext servletContext = servletContextEvent.getServletContext();servletContext.removeAttribute(Injector.class.getName());}public void contextInitialized(ServletContextEvent servletContextEvent) {Injector injector = Guice.createInjector(new MyBatisModule() {@Overrideprotected void initialize() {         //add singleton service classbind(SimpleService.class).to(SimpleServiceImpl.class).in(Singleton.class); });ServletContext servletContext = servletContextEvent.getServletContext();servletContext.setAttribute(Injector.class.getName(), injector);}
}

在基础支持bean中,通过PostConstruct方法获取Guice注入器。 然后,Web应用程序中的每个后备bean都需要扩展此基本后备bean。

package org.borislam.view;import java.io.Serializable;import javax.annotation.PostConstruct;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;import com.google.inject.Injector;public abstract class BasePageBean implements Serializable{private Injector injector;public BasePageBean() {}public Injector getInjector() {if(injector == null) {ServletContext servletContext = (ServletContext)FacesContext.getCurrentInstance().getExternalContext().getContext();injector = (Injector)servletContext.getAttribute(Injector.class.getName());  }return injector;}public void setInjector(Injector injector) {this.injector = injector;}@PostConstructpublic void init() {getInjector().injectMembers(this);}
}

在第二部分中 ,我将继续演示如何集成MyBatis和Guice。

参考: 轻量级Web应用程序框架:来自我们的JCG合作伙伴 Boris Lam的PrimeFaces(JSF)+ Guice + MyBatis(PART1) ,位于“ 编程和平”博客上。

翻译自: https://www.javacodegeeks.com/2013/01/lightweight-web-application-primefaces-jsf-guice-mybatis-part-1.html

primefaces

primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)相关推荐

  1. primefaces_轻量级Web应用程序框架:PrimeFaces(JSF)+ Guice + MyBatis(第2部分)

    primefaces 在这一部分中,我将继续演示JSF,Guice和MyBatis的集成. 在持久层中使用DBCP连接池和MYSQL数据库. 看一下第1部分 . 在上一篇文章中 ,我们创建了一个Ser ...

  2. 轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)

    最近,我的朋友问我如何构建轻量级的Java Web应用程序. 许多Java Web开发人员会选择Spring和Hibernate来构建传统的Web应用程序. 但是,它可能不够轻巧. 我建议他尝试使用G ...

  3. 轻量级Web应用程序框架:PrimeFaces(JSF)+ Guice + MyBatis(第2部分)

    在这一部分中,我将继续演示JSF,Guice和MyBatis的集成. 在持久层中使用DBCP连接池和MYSQL数据库. 看一下第1部分 . 在上一篇文章中 ,我们创建了一个ServletContext ...

  4. jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

    jpa jsf 我们创建了这篇文章,将展示如何使用以下工具创建完整的Web应用程序:Tomcat7,带有Primefaces的JSF2(Facelets和Libraries)(具有AutoComple ...

  5. jpa jsf_完整Web应用程序Tomcat JSF Primefaces JPA Hibernate –第2部分

    jpa jsf 托管豆 这篇文章是本教程第1部分的继续. 在" com.mb"包中,您将需要创建以下类: package com.mb;import org.primefaces. ...

  6. jpa jsf_完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第3部分

    jpa jsf Primefaces AutoComplete,JSF转换器 这篇文章从第一部分和第二部分继续. JSF拥有Converter工具,可以帮助我们从用户视图中获取一些数据并将其转换为从数 ...

  7. 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第1部分

    我们创建了这篇文章,将展示如何使用以下工具创建完整的Web应用程序:Tomcat7,带有Primefaces的JSF2(Facelets和Libraries)(具有AutoComplete),JPA ...

  8. 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第2部分

    托管豆 这篇文章是本教程第1部分的继续. 在" com.mb"包中,您将需要创建以下类: package com.mb;import org.primefaces.context. ...

  9. 完整的Web应用程序Tomcat JSF Primefaces JPA Hibernate –第3部分

    Primefaces AutoComplete,JSF转换器 这篇文章从第一部分和第二部分继续. JSF拥有Converter工具,可以帮助我们从用户视图中获取一些数据并将其转换为从数据库或缓存中加载 ...

最新文章

  1. ASP.Net 2.0 发送邮件的代码
  2. 电子科大博士生杨超火了!2年实现Science+Nature一作双杀
  3. ajax在项目中怎么使用,我如何添加项目在sql中使用jQuery(ajax)通过web服务
  4. 【学习】计算几何初步
  5. 博物馆自动灭火系统应如何选择
  6. 加载特征主数据自动删除重复关键值
  7. dubbo provider异步_dubbo九连问你知道多少?
  8. R语言绘制ROC曲线如何画在一个图中
  9. 自定义vue-cli生成项目模板配置(1)
  10. 基于springboot+vue的前后端分离商城系统
  11. poi读取合并单元格
  12. configparser读取含有中文的配置(Windows)
  13. 设计模式之模板方法模式
  14. D525安装黑群晖DSM6.1.7教程
  15. keras中model.compile()基本用法
  16. DirectX12 - Triangle Culling and Winding Order(三角形的剔除与绕序)
  17. 坐标转换 四参数/七参数/正形变换 ∈ C# 编程笔记
  18. 图片怎么转化为pdf格式文件?图片如何转变为pdf格式?
  19. 【表单】表单数据的提交和处理
  20. (一)C#Winform导入Excel数据到datagridview控件

热门文章

  1. 汇编语言(二十一)之数值交换与自增
  2. JDK8新特性之重复注解
  3. mybatis思维导图,让mybatis不再难懂(二)
  4. 解决idea中xml文件报红问题
  5. Mybatis入门程序增删改查操作
  6. winform通过ListView绑定数据库数据源
  7. Servlet使用适配器模式进行增删改查案例(EmpServiceImpl.java)
  8. MyBatisPlus(基于starter和Bean方式)
  9. android拦截短信获取短信内容,《英雄联盟手游》先锋测试招募说明:仅安卓用户...
  10. 龙芯linux内核,龙芯的linux kernel,内核开发与编译