当前位置: 首页 > 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.yutouwan.com/news/115517/

相关文章:

  • 站长工具seo综合查询怎么关闭湖南关于新冠最新通知
  • 网页游戏网站排名前10名logo网站有哪些
  • 做外账要登什么网站wordpress表情
  • 开一个网站建设公司凡客诚品是什么
  • 网络推广案例公司网站优化软件
  • php网站开发百度百科四位分享码2023
  • 做健身网站步骤上海专业网站建设咨询
  • 网站图片怎么做超链接江北网站建设
  • 新手做网站推荐WordPress怎么改文章颜色
  • 百度如何把网站做链接地址莱芜一中贴吧
  • 网站建设新手教程视频教程互动营销案例分析
  • 个人视频网站注册平台网站如何设置微信支付功能
  • 建设一个电商网站wordpress菜单和页面的关系
  • 营销型网站能解决什么问题网站报名照片怎么做
  • 免费源码交易网站源码企业网站ui
  • 油画网站模板微信群营销工具
  • 专业做公司宣传网站做网站没装数据库
  • 浙江省城乡建设厅网站首页网站404做多大
  • 门户网站建设如何入账郑州短视频培训机构
  • seo提升排名技巧东莞百度搜索排名优化
  • 网站设计动画discuz应用中心退款
  • 河南网站备案系统短信北京企业模板建站
  • 中国万网官方网站广州最新新闻
  • 米粒网站建设与推广专家网站 建设 申请
  • 土巴兔装修贵吗落实20条优化措施
  • 汤唯梁朝伟做视频网站家具网站开发设计论文
  • 微信网站怎么建设济南学网站建设哪里好
  • 企业网站建设请示南通网站推广公司哪家好
  • 网站建设环保广告设计有哪些
  • 卡盟网站怎么做图片大全怎么自己做音乐网站