LeeFJ LeeFJ
2年前
Foxnic-Web 代码生成 (9) —— 文件覆盖与扩展
之前的文档中我们曾多次提及,Foxnic的代码生成是迭代式的,当表结构变化后,需要重新生成相关的代码。例如某表增加了一个字段,那么对应的表结构元数据需要重新生成。此外,为了维护新加的字段也需要重新生成模块代码。  这个时候,如果模块代码已经被开发人员修改,默认情况下,重新生成代码会覆盖开发人员修改过的代码。为了能够反复生成大多数的模块代码Foxnic设计了一套机制,尽可将影响降到最低。
基于AbstractProcessor扩展MapStruct自动生成实体映射工具类
日常开发过程中,尤其在DDD过程中,经常遇到VO/MODEL/PO等领域模型的相互转换。此时我们会一个字段一个字段进行set|get设置。要么使用工具类进行暴力的属性拷贝,在这个暴力属性拷贝过程中好的工具更能提高程序的运行效率,反之引起性能低下、隐藏细节设置OOM等极端情况出现。
MaxSky MaxSky
4年前
macOS 下通过 pecl 命令安装 PHP 扩展 Solr 方法
还是有点小麻烦的,根据日志一步步弄出来编译成功,辛苦辛苦...需要安装的东西有:1.curl2.libxml23.openssl4.libidn25.brotli以上5个组件都可以通过brewinstall命令安装确认安装完毕后先执行下方命令:bashexportLDFLAGS"L/usr/local/opt
Wesley13 Wesley13
3年前
DELPHI开发LINUX包
DELPHI开发LINUX包我们知道,有了包的存在,开发插件架构的程序,才成为可能。DELPHI在WINDOWS里面的包的扩展名是.bpl。在LINUX里面的包的扩展名是.so。怎样在LINUX里面加载.so的包?不论加载WINDOWS的包,还是加载LINUX的包,都是使用LoadPackage()函数加载。func
Easter79 Easter79
3年前
Spring高级进阶:BeanFactoryPostProcessor
BeanFactoryPostProcessor是实现spring容器功能扩展的重要接口,例如修改bean属性值,实现bean动态代理等。很多框架都是通过此接口实现对spring容器的扩展,例如mybatis与spring集成时,只定义了mapper接口,无实现类,但spring却可以完成自动注入,是不是很神奇?本文将通过简单的例子,展现BeanFacto
Stella981 Stella981
3年前
Eclipse插件开发菜单篇
介绍在Eclipse中,菜单是非常重要的一个角色,下面就介绍如何自定义菜单。菜单包括有主菜单、视图菜单、上下文菜单。Eclipse提供了两种方式扩展菜单,分别是通过org.eclipse.ui.commands和org.eclipse.ui.actionSets。扩展点org.eclipse.ui.actionSets\co
Stella981 Stella981
3年前
Python装饰器、内置函数之金兰契友
装饰器:装饰器的实质就是一个闭包,而闭包又是嵌套函数的一种。所以也可以理解装饰器是一种特殊的函数。因为程序一般都遵守开放封闭原则,软件在设计初期不可能把所有情况都想到,所以一般软件都支持功能上的扩展,而对源代码的修改是封闭的。开放封闭原则主要体现在两个方面:对功能扩展开放:意味着有新的需求或变化时,可以对现有代码进行扩展,以适
小万哥 小万哥
1年前
深入理解 Java 多线程、Lambda 表达式及线程安全最佳实践
Java线程线程使程序能够通过同时执行多个任务而更有效地运行。线程可用于在不中断主程序的情况下在后台执行复杂的任务。创建线程有两种创建线程的方式。1.扩展Thread类可以通过扩展Thread类并覆盖其run()方法来创建线程:javapublicclas