javascript
primefaces_轻量级Web应用程序:PrimeFaces(JSF)+ Guice + MyBatis(第1部分)
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部分)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 宝塔 ddos(ddos宝塔)
- 下一篇: 是否可以在最终课程中使用抽象方法?