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

做网站建设工资高吗网站建设方案书文库

做网站建设工资高吗,网站建设方案书文库,wordpress vip 插件,投资网站怎么做jooq欢迎来到jOOQ Tuesdays系列。 在本系列文章中#xff0c;我们每隔一个月的第三个星期二发布一篇文章#xff0c;从jOOQ的角度采访我们发现该行业令人兴奋的人。 这包括从事SQL#xff0c;Java#xff0c;开放源代码以及各种其他相关主题的人员。 我们很高兴在第七版中… jooq 欢迎来到jOOQ Tuesdays系列。 在本系列文章中我们每隔一个月的第三个星期二发布一篇文章从jOOQ的角度采访我们发现该行业令人兴奋的人。 这包括从事SQLJava开放源代码以及各种其他相关主题的人员。 我们很高兴在第七版中与Rafael Winterhalter进行交谈他将向我们介绍Java字节代码的深度以及他的库Byte Buddy该库使使用字节码的工作变得非常容易 。 请注意Byte Buddy赢得了2015年“杜克选择奖” -对此我们表示祝贺 字节好友的作用是什么 字节伙伴是一个代码生成和操作库。 它提供了API用于在运行时创建新的Java类以及在加载之前或之后更改现有的类。 乍一看这听起来似乎很深奥但是运行时代码生成已在许多Java项目中使用。 库开发人员通常使用代码生成工具来实现面向方面的编程。 例如 模拟库Mockito使用Byte Buddy在运行时创建模拟类的子类。 为了实现模拟Mockito会覆盖类的所有方法以便在测试中调用某个方法时不会调用用户的原始代码。 还有许多其他知名的代码生成用户。 例如Spring使用代码生成来实现其注释方面例如安全性或事务。 而且Hibernate使用代码生成通过覆盖那些getter来延迟从getter方法中加载属性以仅在调用它们时才查询数据库。 当有诸如ASMCGLIBAspectJ或Javassist之类的替代方案时为什么需要Byte Buddy 在开始从事Byte Buddy的工作之前我曾作为贡献者参与了其他几个开源项目。 如前所述代码生成是实现许多库的典型要求因此我习惯了使用CGLIB和Javassist 。 但是我对这些库的局限性不断感到沮丧我想解决我发现的问题。 最终我开始写一个替代库后来以Byte Buddy的形式发布。 要了解替代库的局限性模拟是一个很好的示例用例。 Mockito中的小样以前是使用CGLIB创建的。 CGLIB是一个相当成熟的库。 它已经存在了15年以上当它最初被开发时图书馆的开发人员当然并没有想到诸如注释通用类型或防御方法之类的功能。 但是注释确实成为许多不接受模拟实例的API的重要组成部分因为所有重写方法的注释都会丢失。 在Java中方法的注释在被覆盖时永远不会继承。 并且类型的注释只有在明确声明为时才继承。 为了克服这个问题Byte Buddy允许将任何注释复制到子类中该子类现在是Mockito 2中的功能。 相反Javassist允许复制注释但我个人不喜欢该库的方法。 在Javassist中所有生成的代码都表示为包含在字符串中的Java代码。 结果Javassist代码的结构类似于非结构化的Java代码后者仅将SQL描述为级联字符串。 除了创建难以维护的代码外此方法还提供了漏洞例如类似于SQL注入的Java代码注入。 有时可以通过允许Javassist代码编译任意代码来攻击Javassist代码这可能会对应用程序造成严重损害。 在处理现有代码时 AspectJ是一个功能强大的工具。 但是通过Byte Buddy您可以用普通的简单Java来执行AspectJ能够执行的任何操作。 这样开发人员无需学习新的语法或编程隐喻也无需为其构建过程和IDE安装工具。 此外我认为连接点和切入点术语并不直观因此决定完全避免使用。 相反我决定模仿开发人员已经从Java编程语言中了解的术语以简化Byte Buddy的第一步。 另一方面 ASM是实现Byte Buddy的基础。 ASM是字节代码解析器而不是代码生成库。 ASM处理单个类文件并且不考虑类型层次结构。 ASM既没有类加载的概念也没有在字节码指令之上包括更高级别的概念。 但是Byte Buddy提供了一个适配器该适配器向需要生成非常特定的代码的用户公开ASM API。 如何参与低级Java 一开始我为自己设定了仅创建具有注释支持的CGLIB版本的目标这正是我最初需要的。 但是我很快发现许多开发人员正在寻找Byte Buddy如今已成为的解决方案。 因此我开始计划使Java虚拟机的完整功能集可访问。 为此学习类文件格式的所有细节和极端情况已成为实现这些功能的必要条件。 公平地讲一旦掌握了类文件格式它就显得微不足道了我真的很高兴看到我的库成熟。 您最感觉到家在哪里 我想为正确的工作使用正确的工具。 显然我喜欢使用字节码但是在生产项目中工作时我会避免手工制作字节码。 最后这是诸如Byte Buddy之类的更高级抽象的目的。 从常见的用例来看但是Byte Buddy通常用于通过基于方法的注释更改代码来实现自定义功能。 从某种意义上说Byte Buddy使开发人员能够实现自己的4G抽象。 声明式编程是某些任务的绝佳抽象SQL是其中之一。 作为网红您最激动人心的故事是什么 主要是我很高兴认识我的图书馆用户。 我遇到了一些与大型团队一起实施基于我的软件的内部框架的人很显然让Byte Buddy证明如此有用使我感到骄傲。 非常感谢拉斐尔 如果您想了解有关Rafael的工作字节码或Byte Buddy的更多信息 请查看他在JavaZone上的演讲 翻译自: https://www.javacodegeeks.com/2015/12/jooq-tuesdays-rafael-winterhalter-wrestling-byte-code-byte-buddy.htmljooq
http://www.pierceye.com/news/988293/

相关文章:

  • 网站文章更新时间去国外做外卖网站好
  • 北京网站制作设计wordpress seo 介绍
  • 手机网站搭建平台怎么查网站域名备案
  • 用文件传输协议登录网站网站开发设计手册
  • 有什么兼职做it的网站网络推广怎么做才有效
  • 网站后台开发教程沈阳网站制作流程
  • 可以自己做课程的网站深圳小型网站建设
  • 静安做网站公司网站上线的通知
  • 怎么建设电影网站wordpress 附件上传插件下载
  • 网站导航内链建设企业网站设计方式有哪些
  • 手表网站建站千秋网络是家西安做网站的公司
  • 济南企业网站百度seo优化是做什么的
  • 网站颜色搭配案例wordpress洛米主题
  • 网站几个关键词网站备案为什么要关闭
  • 深圳网站制作哪家便宜怎么利用百度云盘做网站
  • 美容培训东莞网站建设做的网站上更改内容改怎么回事
  • 绵阳新农网的网站是哪个公司做的wordpress 在线教育主题
  • 大连优化网站怎样制作企业的网站
  • 网站建设邀请函北京网站优化 卓立海创
  • 公司后台的网站代理维护更新商贸有限公司注销流程
  • 网站建设工作动态wordpress次元主题
  • 手机网站源码asp网站快速排名技巧
  • 站点怎么建网页宁波网站建设设计制作公司
  • 黑龙江企业网站建设网站模板带后台 下载
  • 徐州在线制作网站营销网络是什么意思
  • 上海网站建设seo公司微信小程序制作教学
  • 信息化工作总结 网站建设十堰市有几家网站公司
  • 宠物网站建站目标做外贸的网站哪些是最好的
  • 垂直型电商网站如何做html5 开发的网站
  • 做网站可以不做后端吗渭南网站建设网站排名优化