1 前言
在日常开发工作中,我们经常用Mybatis Generator根据表结构生成对应的实体类和Mapper文件。但是Mybatis Generator默认生成的代码中,注释并不是我们想要的,所以一般在Generator配置文件中,会设置不自动生成注释。带来的问题就是自动生成代码之后,我们还要自己去类文件中把注释加上,如果生成的类较少还好,如果有生成很多类文件,自己加注释是一件繁琐的工作。
通过重写Mybatis Generator的CommentGenerator接口,可以方便地生成自己想要的注释,减少重复工作。
2 使用Java方式执行Mybatis Generator
2.1 IDEA中新建Maven项目
pom.xml中引入jar包
xml version="1.0" encoding="UTF-8"?>
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
org.example
MyGenerator
1.0-SNAPSHOT
8
8
mysql
mysql-connector-java
8.0.16
org.mybatis.generator
mybatis-generator-core
1.3.7
2.2 创建generatorConfig.xml
随便找个目录放,我放在src/main/resources目录下
xml version="1.0" encoding="UTF-8"?>
"-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
id="mysql" defaultModelType="hierarchical" targetRuntime="MyBatis3Simple" >
name="javaFileEncoding" value="UTF-8"/>
name="javaFormatter" value="org.mybatis.generator.api.dom.DefaultJavaFormatter"/>
name="xmlFormatter" value="org.mybatis.generator.api.dom.DefaultXmlFormatter"/>
name="suppressAllComments" value="false" />
driverClass="com.mysql.cj.jdbc.Driver"
connectionURL="URL"
userId="user" password="password">
name="useInformationSchema" value="true" />
targetPackage="com.jd.bulk"
targetProject="src/main/java">
name="enableSubPackages" value="true"/>
targetPackage="com.jd.bulk"
targetProject="src/main/resources">
name="enableSubPackages" value="true"/>
type="XMLMAPPER"
targetPackage="com.jd.bulk"
targetProject="src/main/java">
name="enableSubPackages" value="true"/>
tableName="worker" domainObjectName="Worker"/>
2.3 创建main方法,运行Generator
public class Generator {
public static void main(String[] args) throws Exception {
ListString> warnings = new ArrayList(2);
ConfigurationParser cp = new ConfigurationParser(warnings);
File configFile = new File("src/main/resources/generatorConfig.xml");
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(true);
MyBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
}
}
运行main方法,生成默认注释如下,并不是我们想要的注释,所以一般会配置为注释不生成:
2.4 实现CommentGenerator接口
重写以下方法,自定义注释
public class MySQLCommentGenerator implements CommentGenerator {
private final Properties properties;
public MySQLCommentGenerator() {
properties = new Properties();
}
@Override
public void addConfigurationProperties(Properties properties) {
// 获取自定义的 properties
this.properties.putAll(properties);
}
/**
* 重写给实体类加的注释
*/
@Override
public void addModelClassComment(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
String author = properties.getProperty("author");
String dateFormat = properties.getProperty("dateFormat", "yyyy-MM-dd");
SimpleDateFormat dateFormatter = new SimpleDateFormat(dateFormat);
// 获取表注释
String remarks = introspectedTable.getRemarks();
topLevelClass.addJavaDocLine("/**");
topLevelClass.addJavaDoc服务器托管网Line(" * " + remarks);
topLevelClass.addJavaDocLine(" *");
topLevelClass.addJavaDocLine(" * @author " + author);
topLevelClass.addJavaDocLine(" * @date " + dateFormatter.format(new Date()));
topLevelClass.addJavaDocLine(" */");
}
/**
* 重写给实体类字段加的注释
*/
@Override
public void addFieldComment(Field field, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
// 获取列注释
String remarks = introspectedColumn.getRemarks();
field.addJavaDocLine("/**");
field.addJavaDocLine(" * " + remarks);
field.addJavaDocLine(" */");
}
/**
* 重写给实体类get方法加的注释
*/
@Override
public void addGetterComment(Method method, IntrospectedTable introspectedTable, IntrospectedColumn introspectedColumn) {
// 获取表注释
String remarks = introspectedColumn.getRemarks();
method.addJavaDocLine("/**");
method.addJavaDocLine(" * " + method.getName());
method.addJavaDocLine(" */");
}
2.5 修改generatorConfig.xml配置
将generatorConfig.xml文件中的commentGenerator做如下修改,type属性选择自己的实现类
type="com.generator.MySQLCommentGenerator">
name="author" value="Your Name"/>
name="dateFormat" value="yyyy/MM/dd"/>
运行main方法,生成注释如下:
3 使用Maven方式执行Mybatis Generator
Pom.xml文件中增加以下配置,需要引入generator插件时,依赖实现CommentGenerator接口的jar包,要先把自己的jar包install到本地仓库。
否则会报com.generator.MySQLCommentGenerator找不到,其他配置同上。
compile
org.mybatis.generator
mybatis-generator-maven-plugin
1.4.0
src/main/resources/generatorConfig.xml
true
true
mysql
mysql-connector-java
8.0.16
org.example
MyGenerator
1.0-SNAPSHOT
4 源码分析
查看执行Mybatis Generator的main方法,主要分为两部分,解析指定的配置文件与调用生成java文件和Mapper文件的方法
4.1 解析指定的xml配置文件
跟踪解析xml文件的方法cp.parseConfiguration(configFile)发现,底层以Document形式读取xml文件,根据标签名解析各标签属性,保存到Configuration实例中。
其中解析commentGenerator标签的方法parseCommentGenerator(context, childNode)中,会获取commentGenerator标签的type属性值,也就是自定义的”com.generator.MySQLCommentGenerator”类,放到Context实例中。
4.2 调用生成java文件和Mapper文件的方法
xml配置文件解析完成,得到Configuration实例,后面生成文件的工作都会从Configuration实例中获取所需数据。生成文件的方法主要步骤为:1.连接数据库,查询表信息与列信息,2.生成文件内容,3.写入生成文件。
其中生成文件内容时,会根据Context的type属性反射创建MySQLCommentGenerator实例,然后调用自定义的生成注释方法。
如:生成实体类文件的注释,调用addModelClassComment方法
生成字段注释,调用addFieldComment方法
生成Get方法注释,调用addGetterComment方法
在调用addModelClassComment,addFieldComment,addGetterComment等生成注释的方法时,执行的都是MySQLCommentGenerator类的方法,这样就实现了生成自定义注释的功能。
5 总结
通过使用自定义实现CommentGenerator接口,让自动生成的代码加上我们想要的注释,可以省去自己加注释的麻烦。
与一般使用Mybatis Generator生成代码的方式一样,多实现个接口即可。
使用Maven方式运行时,需要在pom.xml引入插件时,依赖自己jar包。作者:京东物流 王建乐
来源:京东云开发者社区 自猿其说 Tech 转载请注明来源
著作权归作者所有
举报热门内容
更多精彩内容NTP(网络时间协议)设计者 David L. Mills 去世韩国 Kakao 开源多模态大语言模型 HoneybeeICLR 2024 Oral | MetaGPT: LLM Agent 领域第一高分论文,全网 Star 数最高的多智能体框架:tada::tada: wmproxy 0.2.5 发布,新增 websocket 代理,支持负载均衡,内网穿透Calibre 7.4 发布,功能强大的开源电子书工具ModStartCMS v8.0.0 列表自定义字段过滤,用户账号安全升级OurBMC 首个版本 1.0.0 正式发布!CudaText 1.208.5 发布,跨平台的文本编辑器对标 LangChain,一个使用 Java 开发的 LLM(大语言模型)应用开发框架Python 3.13 Alpha 3SecBench:首个网络安全大模型评测平台发布ReiserFS 作者在狱中就被 Linux 内核弃用发表评论周鸿祎回应坚定支持华为:因为 360 也被制裁了写在 t-io star 数在 8888一站式获取 PieCloudDB Database 产品、社区及数据库行业全动态扎克伯格:Meta 正在全力开发开源 AGI(通用人工智能)PHP 8.3.2 发布Android 版 Chrome 默认启用 WebGPU凌鲨 0.7.10 版本更新:leaves: layui-vue v2.14.0 发布,一个 Vue 3 UI 框架基于 ASM 简化可观测管理、提升业务洞察力你的可视化解决方案又双叒叕多了一套!鸿蒙、ChatGPT 入选全球十大工程成就丨 RTE 开发者日报 Vol.111你真的会写 Prompt ? 剖析 RAG 应用中的指代消解HTAP 还可以这么玩?丨TiDB 在 IoT 智慧园区的应用从LLM到AIGC,开启AI时代寻宝之旅!隐语小课|私有信息检索 (PIR) 及其应用场景1 月 21 日,三件事儿,线上不见不散丨社区活动OceanBase 安全审计之透明加密缅怀一代传奇!TVP创始委员陈皓与他的《左耳听风:传奇程序员练级攻略》「代码舞者」2023 开放原子开发者大会——开源大侠秘闻开发者实战 | 英特尔开发套件使用 OpenVINO™ C# API 部署 Yolov8 模型数据库导入导出工具 BatchTool 介绍中国电信天翼云全国产化大数据平台落地广西!DTCC 2023丨云原生环境下,需要什么样的 ETL 方案?云原生场景下高可用架构的最佳实践诚邀报名|谭中意邀您共论“大模型应用开发之道”单日 5000 亿行 /900G 数据接入,TDengine 3.0 在中国地震台网中心的大型应用【用户实践】openGauss5.0在某省医保局实时数仓应用汉得欧洲x甄知科技 | 携手共拓全球化布局,助力出海中企数智化发展如何评估 RAG 应用的质量?最典型的方法论和评估工具都在这里了大模型时代,如何找准AI发展新方向?TVP读书会与你共探坐标沈阳,TDengine 在 CNCC 2023 等你来!祝贺“长三角文化数字资产交易平台”挂摘牌交易市场开放领导者!天翼云持续领跑中国政务云服务市场COSCon'23 主论坛:年度大戏,演职人员已就位OpenAI 自带的检索功能好用吗?定量测评带你深度了解!RT-Thread X 英飞凌创意创客大赛获奖名单公布OpenAI 上线新功能力捧 RAG,开发者真的不需要向量数据库了?开发者实战 | 基于 OpenVINO™ 在英特尔开发套件上实现眼部追踪RT-Thread操作系统全面支持飞腾腾珑E2000系列芯片2023商用密码大会启幕,天翼云商用密码能力体系重磅亮相!我是如何实现Go性能5倍提升的?【经验分享】openGauss 客户端(Data Studio / DBeaver)连接方式让所有人不再为 SQL 问题头疼! | 1024 特别企划有了向量数据库,我们还需 SQL 数据库吗?Go语言微服务框架重磅升级:dubbo-go v3.2.0 -alpha 版本预览恭喜我同事的论文被IEEE HPCC收录!AI巨浪下,数据技术如何驱动智能未来?谷歌Gemini刚发就惹质疑:效果视频疑似剪辑;苹果故意降低iPhone性能,被判赔偿7万韩元;小米手机内核已开源 | EA周报【就在下周六!】嵌入式网络应用开发沙龙,带你从0到1搭建智能数据网关阿里云故障洞察提效 50%,全栈可观测建设有哪些技术要点?终端云的探索与研究云主机与云服务器:两者的区别某高品质房地产企业:借助NineData统一管理集团数据库,推动业务稳定、安全、规范运维大模型探索之 Text2PromQL 问答机器人DeepFlow 元数据数据库 PostgreSQL 改造实践开发者实战 | 基于OpenVINO™ Python API部署RT-DETR模型【我和openGauss的故事】原生openGauss与Oracle数据库函数兼容性对比验证测试TiDB 在全球头部物流企业计费管理系统的应用实践OceanBase 数据文件缩容实践火山引擎DataTester升级MAB功能,助力企业营销决策深度实践 | 自如基于Apache StreamPark 的实时计算平台实践睿赛德科技乔迁新址,今日正式揭牌启用!强强联合!天翼云与神州信息共助银行数字化转型升级!DevSecOps之应用安全测试工具及选型云边协同深化应用助推健康医疗智能化发展苹果回应遭开发者集体诉讼:没有垄断行为;俞敏洪称鼓励儿子实习每天工作18个小时吃苦;任正非:华为需要盯着做事的干部 | EA周报解析数据库的“四世同堂”,畅聊数据前沿技术!印度用本土操作系统“玛雅”取代Windows;微软高管称程序员等岗位十年内被 AI 淘汰;中国成iPhone最大市场 |EA周报基于 ACK Fluid 的混合云优化数据访问(二):搭建弹性计算实例与第三方存储的桥梁数据库编程大赛:一条SQL计算扑克牌24点火山引擎 DataLeap 计算治理自动化解决方案实践和思考Kitex 两周年回顾——能力升级、社区合作与未来展望Partition Key:从一个社区提问走出来的新功能天翼云存储资源盘活系统HBlock,全面释放企业数据价值HPC中常见的调度器介绍用户案例|Shopee 在多媒体理解业务的向量检索系统实践Hello,Vector DB|可能是最易上手的 Faiss 教程灵魂三问之稳定性摸排多模多态 向量加持 | GBASE南大通用闪耀openGauss Summit 2023DataWorks 全新发布:增强分析/数据建模个人版等新能力开发者实战 | 行人摔倒检测 - 在英特尔开发套件上基于 OpenVINO™ C# API 部署 PP-HumanVMware Greenplum 7 正式发布!OpenTiny 推出开源低代码引擎 TinyEngine 在 KubeCon China 2023 蓄力云原生生态如何充分发挥 SQL 能力?书写开源之魂|2023 年活力开源贡献者、开源项目揭晓全站热门评论
.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}看评论,国内美tian很多啊,在这帮美tian看来,国内别人做什么都是错的,都是比不上美国高大上,哎,民族的悲哀!.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
C++会带来一些好处,和无穷的混乱.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
别的不说,就看这女人讲话时,那地皮流氓般嚣张的嘴脸,还有那些下三烂的言辞,这就是我们的清华帮民族企业家的素质。同为打工仔的我们,实在想不通为什么还是有一些弱智在寻找完美受害者,说什么这位爆料的员工「感觉好像也没那么无辜」,真是应了鲁迅先生的那句话:哀其不幸,恕其不争。底层打工仔也太不团结了。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
其实一直像华为自己承认的:做成生态太难了,其实微软、阿里、腾讯都曾有过自己的 OS,但都失败了。很大问题就是生态问题,你能坚持N年投入吗?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
现在动态变成评论了?又要被监管了,又要洗碗了?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
2河南人乱讲话,你也信?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
又涨价了,唉!待宰羔羊一只。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
鸿蒙NEXT发布,华为请他去站台,怎么能算他蹭华为流量呢?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
y你的话没啥人信?地域黑.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
有创业史的人会理解老板这俩字真正的含义.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
别这么说:)都是好项目,多多支持!.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
gozi 你那么干啥呢?你这牛气的,不得Linus都要叫你papa?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
现在华为放弃AOSP,不兼容APK,对于常用应用来说没有问题,也就是说可以覆盖大多数人,但对于特别需求的人来说,可能无法覆盖。但如果连 linux kernel 都不放一个,全部自己开发,感觉有点浪费的味道。最后能否成功,还是看其他厂商能否全力支持,是否造成赚钱效应。不过,还是感觉中庸之道比较靠谱。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
t曝光这帮自以为是的所谓高管是要举双手赞同的。但“因为盗版设计出的芯片可能有Bug,质量无法保证”,这不是扯的吗?画蛇添足。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
发展模式非常好,可持续!!.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
反正我就感觉他就是一教的味道.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
先不说别的,就这女的嘴脸就恶心,感觉就是在钻《laodong法》空子,《laodong法》对公司来说违法成本太低了,才有了这样的一幕;至于是不是清华,清华咋了,有才无德,真给清华丢脸.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
我是多么可悲,才让我刷到这个,恶心啊.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
S还做技术都懂,怕做的是hello world技术吧?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
叨报J !秃子又出来嚯嚯人了.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
大家都被假开源骗怕了,参考.net的那个框架,文档出尔反尔收费的事情,现在还一堆人给那个骗子洗白,信任就这么被消耗了,以后国内的开源只怕更难,唉.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
蹭华为流量.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
Solon很快就会遥遥领先于t-io.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
谁是狼,谁是狈啊?我觉得你的nginxWebUI还不错,是用了心的,在这一点上,必须谢谢你对开源作的贡献.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
谁性价比高我用谁的,随便吹,.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
S继续黑,看到做出来了狗急跳墙了哈哈.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
i?鸿蒙内核,要不要这么玄学,感觉是一个营销概念。迄今为止能正儿八经的商用的也就BSD系,linux,WindowsNT,Darwin这几个。。。。这都是多少年的成果,微内核从上世纪至今也就mach,GNU/Hurb等少数几个项目,而且都没步入商用,或者使用了混合内核的工程实现例如WindowsNT与Darwin。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
所以你为什么有这么多的精力来做这么多的东西?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
A你可别用命运石之门了 真恶心 真有脸啊.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
谁c和lua共享内存的方式处理渲染。有意思。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
一个操作系统首先要面对活下来的问题,然后才是生长,但这一步可能就像能否直接跳过资本zhuyi直接进入shehui主义一样,不可逾越,需要像其它OS一样自然生长十几年。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
违法成本为0,干嘛不违法.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
但凡看一眼oh源码都说不出这种话.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
帅气的数字:).comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
用了别人的创意,大大方方感谢不行吗,人家开源了,又不是不给你用。炒还炒得这么理直气壮,看看上面那些评论,都什么嘴脸?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
另外。是有很多企业在用了的。有法国,美国,香港,台湾等地的用户。国内还有军工,国企,政府,互联网等例案的:).comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
个人一律很刑,企业统统很行.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
360但凡不瞎弹广告也不至于被骂的狗血淋头.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
你对开源的认知可能有点浅.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
Solon 有企业版 2.8万起步价(多一个,开发票+企业专属群)。不需要靠文档收钱的 。。。自由选择:想免费用社区版本,想要合同发票用企业版:).comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
与好处相比 带来的困难和风险更高 支持 Rust.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
S小丑继续,都不用别人来溜你自己出来溜了.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
河北承德: 没收违法所得警告.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
哇他是你写的啊。我老早就听过:)。。。相互支持!.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
“所以只要是老余(余承东)做的我就支持,只要是华为干的我就认为一定是对的。”,新的“两个凡是”出现了。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
牛牛牛.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
t-io是挺不错的,但作为底层群员的过来人表示,当年发现文档不能看就看其他组件去了,虽然现在也觉得文档收费是个可选的方案,但面向底层研发收费太难了,除非铁粉 ,确实挺难的.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
有段时间没有用C++开发应用了,对C++的了解不是很熟悉了,虽然c++添加了很多新功能,和不少新语法。但是本质没有什么变化。现在就讨论用C++开发系统应用是不是太草率了.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
Linus主要是做code review的,C++这种充满了自作聪明的省代码和隐晦特性的语言,写时一时爽,review火葬场,他是不可能允许进Linux内核的。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
据说,有新内核,是不是微内核不知道,微内核据说也有。只是这些目前没有开源而已。OH本身就是多内核的,人家自己多备几个很正常。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
估计是被阿里收编后改的名字?.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
果然 一堆 阴阳怪气的 哈啤.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
S继续黑,小丑,不要藏着掖着自己的黑子身份.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
一个公司几年超越了人类几十年的结晶有脑子.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
你还有脸出来发布新闻我是没有料到.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
其实就是试用期辞退人家,满6个月,但是又不想多给一个月的赔偿金,于是互撕开始了.... 国内大部分公司辞退员工,都不想给赔偿金,各种操作逼着员工"自愿"走... 仲裁耗时间,要实质的证据,赢了也就拿回自己的那一份,对于公司来说0违法成本... 质疑"学历简历造假",其实可能知道对方是函授学历,想在这里搞事情,咬死不承认对方没有说自己函授的学历,或者是公司看舆论不对,先质疑对方本身违法,公司是合法的炒鱿鱼.... 不管什么原因,工作满6个月,确实要给一个月的赔偿金,不想给,员工肯定要合法闹事了.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
t很多软件都是检测到盗版,就随机出错的,当然了,最狠的还是江民,直接锁硬盘。.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
相互撕吧.你撕他学历,简历造假,他撕你偷税漏税,社保人数,金额缴纳不足,使用盗版软件...........comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
叨周鸿wei是河南人?难怪了.comments-box__list-news .osc-avatar{border-radius: 5px}.comments-box__list-news .comment-item:hover{background: rgba(201,201,201,0.1)}
在侮辱“开源”这俩字选择专区和圈子:{{title}}{{o.name}}{{m.name}}OSCHINA(OSChina.NET)工信部开源软件推进联盟
指定官方社区社区规范
深圳市奥思网络科技有限公司版权所有粤ICP备12009483号
.codeBlock:hover .oscCode{display: block !important;} .codeBlock{z-index: 2;position: fixed;right: 20px;bottom: 57px; overflow: hidden; margin-bottom: 4px;padding: 8px 0 6px;width: 40px;height: auto;box-sizing: content-box;cursor: pointer;border: 1px solid #ddd;background: #f5f5f5;text-align: center;transition: background 0.4s ease;}
@media only screen and (max-width: 767px){ .codeBlock{display: none;}}/*
html{
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);
_filter:none;
}
*/
if(window.location.href.indexOf("www.oschina.net/group")!=-1 && window.location.href.indexOf("/admin/")!=-1){
document.querySelector("#mainScreen > div > div.group-admin-container > div.admin-body-box.box-card > div > div.menu-box > div > div:nth-child(4)").remove()
}顶部(function(){
var bp = document.createElement('script');
var curProtocol = window.location.protocol.split(':')[0];
if (curProtocol === 'https'){
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
}
else{
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
}
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(bp, s);
})();var _hmt = _hmt || [];
_hmt.push(['_requirePlugin', 'UrlChangeTracker', {
shouldTrackUrlChange: function (newPath, oldPath) {
return newPath && oldPath;
}}
]);
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?a411c4d1664dd70048ee98afe7b28f0b";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();{
"@context": "https://ziyuan.baidu.com/contexts/cambrian.jsonld",
"@id": "https://my.oschina.net/u/4090830/blog/10887860",
"appid": "1653861004982757",
"title":"把Mybatis Generator生成的代码加上想要的注释 - 京东云开发者的个人空间",
"images": ["https://img1.jcloudcs.com/developer.jdcloud.com/c61ced1f-94ec-4ca7-ab69-d3df94f7a5d820220811194013.png"],
"description":"1 前言 在日常开发工作中,我们经常用Mybatis Generator根据表结构生成对应的实体类和Mapper文件。但是Mybatis Generator默认生成的代码中,注释并不是我们想要的,所以一般在Generator配置文件中,会设置不自动生...",
"pubDate": "2024-01-19T14:16:25+08:00",
"upDate":"2024-01-19T14:16:25+08:00",
"lrDate":""
}<!--
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());gtag('config', 'G-TK89C9ZD80');
-->
window.goatcounter = {
path: function(p) { return location.host + p }
}(function(){
var el = document.createElement("script");
el.src = "https://lf1-cdn-tos.bytegoofy.com/goofy/ttzz/push.js?2f2c965c87382dadf25633a3738875e5ccd132720338e03bf7e464e2ec709b9dfd9a9dcb5ced4d7780eb6f3bbd089073c2a6d54440560d63862bbf4ec01bba3a";
el.id = "ttzz";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(el, s);
})(window)
SpringBoot 2.x 正式停更了。Java 8 由 Solon 接收!
从分享一个小工具到首个 GitHub 1K Star 小成就
Linux 内核被冬季风暴“封印”
Git 开发人员讨论引入 Rust 的可能性
LG 洗衣机每日使用的数据流量高达 3.6GB?
Linus“温馨提示”:Intel Xe 驱动代码严重缺乏测试
2024 技术招聘状况:AI 工具被视为作弊,Python 需求最大
华为发布 HarmonyOS NEXT 鸿蒙星河版(开发者预览)
Ruffle 2023 回顾 – Rust 实现的开源 Flash Player 模拟器
AI 将影响全球近 40% 的工作,加剧财富不平等
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 安全测试工具Burpsuit和OWASP ZAP使用入门指南
Burpsuit使用入门指南 安装: 网上有很多相关相关保姆级别教程,所以这里不加赘述了 尽量使用java8版本,破解版兼容8做的比较好 如果发现注册机无法打开或者能打开注册机【run】无法点击唤起软件安装,可以使用命令行工具 java -jar burp-l…
点击引领话题
发布并加入讨论