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

南通seo网站推广费用芜湖建设网站公司

南通seo网站推广费用,芜湖建设网站公司,常州网上挂号预约平台,wordpress用户中心界面dagger2 注入依赖注入是一种软件开发概念#xff0c;其中为对象提供了创建所需的所有对象或值。 GWT用户已经熟悉GIN#xff0c;但已经不推荐使用此工具#xff0c;因此不再支持它#xff0c;因此使用GIN的应用程序当前确实需要告别。 Dagger是GWT的新依赖注入框架。 对于那… dagger2 注入 依赖注入是一种软件开发概念其中为对象提供了创建所需的所有对象或值。 GWT用户已经熟悉GIN但已经不推荐使用此工具因此不再支持它因此使用GIN的应用程序当前确实需要告别。 Dagger是GWT的新依赖注入框架。 对于那些不熟悉该框架的人Dagger的目的是为Android提供DI但现在已用于通用DI。 它也适用于GWT。 在本文中我们将简要介绍Dagger以及如何使用Dagger为GWT项目设置DI。 GWT有什么用 与使用生成器将来会在GWT中删除的GIN不同Dagger使用编译时注释处理器。 使用Dagger的项目在升级GWT版本时会遇到较少的麻烦。 另一方面DI通常会引入复杂性因此很难调试注入过程中发生的错误。 GIN堆栈跟踪有时是不可读的。 Dagger的目标之一就是减少这一缺点。 Dagger生成的代码接近于人类编写的代码因此更容易了解幕后发生的事情因此开发人员在调试时不会有太多麻烦。 在GWT项目中使用Dagger 依存关系 dependencygroupIdjavax.inject/groupIdartifactIdjavax.inject/artifactIdversion1/versionscopeprovided/scope/dependencydependencygroupIdcom.google.dagger/groupIdartifactIddagger-gwt/artifactIdversion2.5/versionscopeprovided/scope/dependencydependencygroupIdcom.google.dagger/groupIdartifactIddagger-compiler/artifactIdversion2.5/versionscopeprovided/scope/dependency Dagger要求在编译时将javax.inject注释放在类路径上。 此外需要将Dagger模块添加到.gwt.xml中 inherits namedagger.Dagger /inherits 注释处理器 如果使用的是maven则要在调用编译目标时自动执行注释编译器则需要使用高于3.5.1的版本。 否则您将需要在插件配置中同时指定注解处理器和注解处理器路径。 可选地可以将dagger-compiler编译器从依赖项中删除并添加到注释处理器路径中如Thomas Broyer在SO中所指定的 plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdversion3.5.1/versionconfigurationsource1.7/sourcetarget1.7/targetannotationProcessorPathspathgroupIdcom.google.dagger/groupIdartifactIddagger-compiler/artifactIdversion${dagger.gwt.version}/version/path/annotationProcessorPaths/configuration /plugin 值得注意的是在开发模式下每次注入的类发生更改时都必须重新运行注释处理器。 在maven下可以使用流程类目标运行注释处理器。 我尚未测试Gradle但是使用Gradle的概念也应该相同。 简单的依赖注入 假设我们有一个压缩图像的服务。 该服务取决于其他两个服务下载图像的服务和压缩后上传图像的服务。 所有对象都有零个args构造函数。 public class ImageCompressor {Inject public ImageDownloader downloader;Inject public ImageUploader uploader;Injectpublic ImageCompressor(){ }public void compress(String url) {downloader.download(url);GWT.log(compressing image);uploader.upload(url);}}public class ImageDownloader {Injectpublic ImageDownloader() {}public void download(String url) {GWT.log(downloading image at url);}}public class ImageUploader {Injectpublic ImageUploader() {}public void upload(String url) {GWT.log(uploading compresesed image at url);}} 定义模块 如果您需要特殊的设置来构造对象例如设置一些值或指定构造函数参数则需要创建一个模块。 假设我们需要为ImageDownloader对象提供一个超时值 public class ImageDownloader {int timeout;//Inject we cannot use inject on the constructor anymorepublic ImageDownloader(int timeout) {this.timeout timeout;}public void download(String url) {GWT.log(downloading image at url);} } 然后我们需要指定一个提供ImageDownloader的模块 Module public class ImageCompressionModule {Providespublic ImageDownloader getImageDowloader(){return new ImageDownloader(15);} 定义应用程序组件 现在我们定义了模块和对象我们将创建DI组件该组件将用于获取注入的对象实例。 Component(modulesImageCompressionModule.class) public interface AppComponent {ImageCompressor getImageCompressor(); } 使用注入的对象 我们的应用程序组件的实例可以通过以下方式获取 AppComponent component DaggerAppComponent.builder().imageCompressionModule(new ImageCompressionModule()).build(); 如果使用的是IDE则会注意到它抱怨DaggerAppComponent。 这很正常因为DaggerAppComponent仅在运行注释处理器之后才可用。 最后我们可以使用我们的对象 ImageCompressor compressor component.getImageCompressor();compressor.compress(http://www.g-widgets.com/GWTcon.jpg); 结果 downloading image at http://www.g-widgets.com/GWTcon.jpg compressing image uploading compressed image to http://www.g-widgets.com/GWTcon.jpg结语 Dagger 2是GWT的下一代依赖注入。 我们已经在这篇文章中看到了框架的基本功能。 可以在Dagger的主要用户指南中找到更多高级DI功能 https : //google.github.io/dagger/users-guide 。 Dagger的GWT版本与后端版本的工作方式相同代码可以在客户端和服务器端都可以工作因此如果在JVM中进行调试有好处可以将DI移植到后端可能很有用。 完整代码可在以下网址获得 https : //github.com/zak905/dagger2-gwt-example 翻译自: https://www.javacodegeeks.com/2017/07/dependency-injection-gwt-using-dagger-2.htmldagger2 注入
http://www.huolong8.cn/news/325063/

相关文章:

  • 网站策划的内容网页设计与网站开发经济可行性
  • 淄博网站营销与推广承德网站建设制作
  • 南京自助网站推广建站世界上有php应用的网站
  • 长春网络关键词排名宜昌网站排名优化
  • 江门网站如何制作河南省百城建设提质网站
  • 做企业网站的公司网站怎么换域名
  • 厦门网站定制施工企业企业管理费
  • 做影视网站规模不大平面设计黑白创意图片
  • 诚聘网站开发wordpress 制作小工具栏
  • 中国建设银行报名网站深圳的小型网络公司
  • 思途旅游cms网站建设系统大气黑色机械企业网站源码
  • 为什么要建设就业指导网站张雪峰谈网络工程专业
  • 宿迁网站建设价位成都 网站推广
  • 国内优秀的企业网站wordpress安全设置
  • 企业服务 免费网站建设网站自己怎么做
  • 杨家平网站建设温江建设局备案网站
  • 传奇手游三端互通新开服网站凡科做网站友情链接怎么做
  • 简述企业网站建设的目的做企业推广去哪个网站比较好
  • 做么自己做一个网站什么是h5页面设计
  • 福清市建设工程电子招标网2018版安卓优化大师旧版本
  • 网站慢的原因mui做的h5网站案例
  • 网站建设 amp 找VX cp5173舆情监测分析系统
  • 4444k面访问升最新网站无锡网站排名提升
  • 服装商城的网站建设网站建设 客户定位
  • 海口网站制作软件创建一个网站的条件有哪些
  • 连云港网站建设制作网站建设兆金手指排名
  • 重庆建站网站流程及费用微信公众号和网站建设的意义
  • 建设网站了还能消除吗软环境建设办公室网站
  • 龙港哪里有做百度网站的wordpress空间多大合适
  • 温州网站制作套餐云南昆明做网站