当前位置: 首页 > news >正文

公司网站建设 上海陕西网站备案代理

公司网站建设 上海,陕西网站备案代理,建行官网登录入口,义乌外贸建站如果读者对于Guice没有大体的了解#xff0c;可以参考本人的另一篇Guice基础文章 Guice 提供了一个完整的体系使得我们在web应用中也可以使用它作为依赖注入的工具. 为什么使用 Guice : 使用Guice的好处: 构造函数注入类型安全的, 方便的配置方式(只需要在web.xml中进行很…如果读者对于Guice没有大体的了解可以参考本人的另一篇Guice基础文章 Guice 提供了一个完整的体系使得我们在web应用中也可以使用它作为依赖注入的工具. 为什么使用 Guice : 使用Guice的好处: 构造函数注入类型安全的, 方便的配置方式(只需要在web.xml中进行很少的配置)模块化Guice AOP 同时, Guice并不会改变标准servlet的生命周期 如何配置呢 在开始之前首先获取最新的 guice-servlet.jar. 小编用maven做所以这块如果读者使用其他方式需要根据自己的情况进行配置这里贴上小编的 maven 文件内容 dependencygroupIdcom.google.inject/groupIdartifactIdguice/artifactIdversion4.0/version/dependencydependencygroupIdcom.google.inject.extensions/groupIdartifactIdguice-servlet/artifactIdversion4.0/version/dependency 在web.xml中配置GuiceFilter过滤器: 在所有依赖包都配置好之后我们需要做的第一件事是配置GuiceFilter. 这个过滤器重新路由所有的客户端请求   filterfilter-nameguiceFilter/filter-namefilter-classcom.google.inject.servlet.GuiceFilter/filter-class/filterfilter-mappingfilter-nameguiceFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping 安装ServletModule 在完成上面的操作之后,接下来要做的事情是安装ServletModule Guice.createInjector(new ServletModule()); 这个模块是用来设置请求和会话范围(scopes),同时提供一个配置你的过滤器和servlet的方法. 一个不错的建议是在一个ServletContextListener 中进行当然你也可以在其他你需要该注入器(injector)的地方 Guice Servlet提供了一个GuiceServletContextListener 我们可以继承该类实现自己的ServletContextListener public class MyGuiceServletConfig extends GuiceServletContextListener {Overrideprotected Injector getInjector() {return Guice.createInjector(new ServletModule());} } 然后在web.xml中配置该listener.然后当Servlet 容器启动Web 应用时该监听器便会被执行我们的ServletModule 被安装 listenerlistener-classcom.up.MyGuiceServletConfig/listener-class /listener Binding Language 我们可以将ServletModule 看做一个代码形式的web.xml文件过滤器和servlet可以通过简单的调用一些java api 实现下面看一个简单的例子: Guice.createInjector(..., new ServletModule() {Overrideprotected void configureServlets() {serve(/*).with(MyServlet.class);filter(/*).through(MyFilter.class);}} serve(/*).with(MyServlet.class); 等价于 servletservlet-nameMyFilter/servlet-nameservlet-classcom.up.servlet.MyServlet/servlet-class/servletservlet-mappingservlet-nameMyFilter/servlet-nameurl-pattern/*/url-pattern/servlet-mapping filter(/*).through(MyFilter.class); 等价于 filterfilter-nameMyFilter/filter-namefilter-classcom.up.filter.MyFilter/filter-class/filterfilter-mappingfilter-nameMyFilter/filter-nameurl-pattern/*/url-pattern/filter-mapping Note: 每个 servlet 或者 filter 需要是单例的如果你不能直接注解该类那么你需要使用bind(..).in(Singleton.class). Guice servlet不支持SingleThreadModel 可用的注入: 安装了ServletModule 之后我可方便的注入一些servlet体系中的类. RequestScoped class SomeNonServletPojo {InjectSomeNonServletPojo(HttpServletRequest request, HttpServletResponse response, HttpSession session) {...}} 请求和响应是当前http请求作用域。同样的http会话对象是当前用户会话作用域。除此之外你也可以使用绑定注释RequestParameters注入当前ServletContext和请求参数如下: Inject RequestParameters MapString, String[] params; 这里必须是MapString, String[] 因为http允许多个value对应于同一个key Note: 如果你想给一个大作用域的对象注入一个请求作用域或者会话作用域的对象, 你应该使用ProviderT 多对一映射 我们可以将多个 url 映射到相同的 servlet. serve(*.html, /my/*).with(MyServlet.class); 该方法对于过滤器也同样适用 正则表达式映射 我们也可以使用正则表达式方式映射 url 到特定的 servlet 或 filter. serveRegex((.)*ajax(.)*).with(MyAjaxServlet.class) 上述实例会将所有包含 “ajax” 的 URI 映射到 MyAjaxServlet 初始化参数 在有 web.xml 时我们可以通过配置init-param 给 servlet 或 filter 传入初始化参数. Guice Servlet 中完成该任务只需要在配置该 servlet 或 filter 时传入一个MapString, String 实例就ok了 MapString, String params new HashMapString, String();params.put(coffee, Espresso);params.put(site, google.com);serve(/*).with(MyServlet.class, params) 绑定Key 你也可以不绑定特定的实现类取而代之的是绑定一个接口然后通过 Guice 注入特定的实现类 filter(/*).through(Key.get(Filter.class, Fave.class)); 这里的Filter.class 是 Servlet API javax.seervlet.Filter, Fave.class 是一个自定义的绑定注解 然后在你自己的模块中将特定的filter绑定到该接口 bind(Filter.class).annotatedWith(Fave.class).to(MyFilterImpl.class); 注入injector 你可以在任何时刻取得injector对象,只需要像下面这样一行代码就可以了 Singleton public class MyServlet extends HttpServlet {Inject private Injector injector;... }// elsewhere in ServletModule serve(/myurl).with(MyServlet.class); 恭喜你到此你可以开始你自己的 Guice Servlet 之旅了
http://www.sadfv.cn/news/115517/

相关文章:

  • 视频购物网站开发方案网站建设专业如何做到廉洁自律
  • 网站建设廾金手指专业壹柒太原最新建设
  • 番禺龙美村做网站什么是网站子目录
  • 国内工业设计网站产品开发流程文件
  • 广州品牌网站开发北京怎样做企业网站
  • 阆中 网站建设企业 办公 网站模板下载
  • 东莞网站关键词优化淘宝网站建设的策划书
  • 建筑企业登录建设厅网站密码js代码放wordpress哪里
  • vps 网站权限模板网站建设平台
  • 深圳常桉网站建设网站注册备案查询
  • 凡科小程序建站官网网站备案分为几种
  • 电商网站设计网络服务小型电子商务网站规划建设方案
  • html5 手机端网站wordpress模板如何修改
  • 中山外贸营销网站建设h5页面制作网站官网
  • 做网站可以用php吗个人网页设计概述
  • 合肥建设网站首页网站开发综合实训报告
  • 运城建设银行网站点黄冈网站建设哪家好
  • 做网站用到的单词中国网站空间
  • ih5 做视频网站火车采集器 wordpress
  • php网站开发师中国一级爱做电影网站
  • 淄博网站建设详细策划wordpress素材模板
  • 英文外贸商城网站设计语音网站怎么做
  • 做网站都要掌握什么软件网站升级维护
  • 广西专业网站建设上海做高端网站
  • 做资讯网站需要什么条件wordpress 常用小工具
  • 网站列表页是啥手机改ip地址软件免费
  • 国外网站赏析有什么平台可以发广告
  • 打名字就说你是什么做的网站新闻wordpress主题
  • 株洲网站建设网站建设网络架构分层包括哪些
  • 电子商务网站建设 故宫官网怎样宣传自己的产品