MyBatis-Plus——代码生成器(3.5.1+版本)
文章目录
- 配置
- 数据源配置(DataSource)
- 全局配置(GlobalConfig)
- 包配置(PackageConfig)
- 策略配置(StrategyConfig)
- 模板引擎配置(TemplateEngine)
- 代码生成器测试样例
- 步骤:
- 1、创建测试数据库 mp
- 2、创建一个 Spring-Boot 项目
- 3、在 pom.xml 中导入相关依赖
- 4、编写一个mian方法,加上框架
- 5、进行数据源配置
- 6、进行全局配置
- 7、进行 包配置
- 8、策略配置
- 9、模板引擎配置
- 10、执行
- 执行效果演示:
- 附1:快速生成样例代码
- 附2:交互式生成样例代码

MyBatis-Plus 官方文档:https://mp.baomidou.com/guide/generator-new.html

这是官网上的文档,从官方文档中给快速生成代码中,可以看出代码生成器的配置结构为:
//1、配置数据源FastAutoGenerator.create("url", "username", "password")//2、全局配置.globalConfig(...)//3、包配置.packageConfig(...)//4、策略配置.strategyConfig(...)//5、模板引擎配置.templateEngine(...)//6、执行.execute();
我们只需要通过填空的方式去配置数据源(DataSource),全局配置(GlobalConfig),包配置(PackageConfig),策略配置(StrategyConfig)和模板引擎配置(TemplateEngine)即可。
官方文档上也给出了对于每一个配置我们可以进行什么操作。
配置
数据源配置(DataSource)
| 属性 | 说明 | 示例 |
|---|---|---|
| url | jdbc路径 | jdbc:mysql://127.0.0.1:3306/mybatis-plus |
| username | 数据库账号 | root |
| password | 数据库密码 | 123456 |
| dbQuery(IDbQuery) | 数据库查询 | new MySqlQuery() |
| schema(String) | 数据库schema(部分数据库适用) | mybatis-plus |
| typeConvert(ITypeConvert) | 数据库类型转换器 | new MySqlTypeConvert() |
| keyWordsHandler(IKeyWordsHandler) | 数据库关键字处理器 | new MySqlKeyWordsHandler() |
全局配置(GlobalConfig)
| 方法 | 说明 | 示例 |
|---|---|---|
| fileOverride | 覆盖已生成文件 | 默认值:false |
| disableOpenDir | 禁止打开输出目录 | 默认值:true |
| outputDir(String) | 指定输出目录 | /opt/baomidou/ 默认值: windows:D:// linux or mac : /tmp |
| author(String) | 作者名 | baomidou 默认值:作者 |
| enableKotlin | 开启 kotlin 模式 | 默认值:false |
| enableSwagger | 开启 swagger 模式 | 默认值:false |
| dateType(DateType) | 时间策略 | DateType.ONLY_DATE=Date 默认值: DateType.TIME_PACK=LocalDateTime |
| commentDate(String) | 注释日期 | 默认值: yyyy-MM-dd |
包配置(PackageConfig)
| 方法 | 说明 | 示例 |
|---|---|---|
| parent(String) | 父包名 | 默认值:com.baomidou |
| moduleName(String) | 父包模块名 | 默认值:无 |
| entity(String) | Entity 包名 | 默认值:entity |
| service(String) | Service 包名 | 默认值:service |
| serviceImpl(String) | Service Impl 包名 | 默认值:service.impl |
| mapper(String) | Mapper 包名 | 默认值:mapper |
| mapperXml(String) | Mapper XML 包名 | 默认值:mapper.xml |
| controller(String) | Controller 包名 | 默认值:controller |
| other(String) | 自定义文件包名 | 输出自定义文件时所用到的包名 |
| pathInfo(Map<OutputFile, String>) | 路径配置信息 | Collections.singletonMap(OutputFile.mapperXml, “D://”) |
策略配置(StrategyConfig)
| 方法 | 说明 | 示例 |
|---|---|---|
| enableCapitalMode | 开启大写命名 | 默认值:false |
| enableSkipView | 开启跳过视图 | 默认值:false |
| disableSqlFilter | 禁用 sql 过滤 | 默认值:true,语法不能支持使用 sql 过滤表的话,可以考虑关闭此开关 |
| enableSchema | 启用 schema | 默认值:false,多 schema 场景的时候打开 |
| likeTable(LikeTable) | 模糊表匹配(sql 过滤) | likeTable 与 notLikeTable 只能配置一项 |
| notLikeTable(LikeTable) | 模糊表排除(sql 过滤) | likeTable 与 notLikeTable 只能配置一项 |
| addInclude(String…) | 增加表匹配(内存过滤) | include 与 exclude 只能配置一项 |
| addExclude(String…) | 增加表排除匹配(内存过滤) | include 与 exclude 只能配置一项 |
| addTablePrefix(String…) | 增加过滤表前缀 | |
| addTableSuffix(String…) | 增加过滤表后缀 | |
| addFieldPrefix(String…) | 增加过滤字段前缀 | |
| addFieldSuffix(String…) | 增加过滤字段后缀 | |
| entityBuilder | 实体策略配置 | |
| controllerBuilder | controller 策略配置 | |
| mapperBuilder | mapper 策略配置 | |
| serviceBuilder | service 策略配置 |
模板引擎配置(TemplateEngine)
默认 Velocity ;可选模板引擎 Beetl 或 Freemarker。
| 模板引擎 | 代码 | |
|---|---|---|
| Velocity | 默认 | .templateEngine(new VelocityTemplateEngine()) |
| Freemarker | 可选 | .templateEngine(new FreemarkerTemplateEngine()) |
| Beetl | 可选 | .templateEngine(new BeetlTemplateEngine()) |
代码生成器测试样例
那么知道配置之后我们可以自己写一个操作一下。
步骤:
1、创建测试数据库 mp
CREATE DATABASE mp;USE `mp`;/*Table structure for table `student` */CREATE TABLE `student` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号',`name` varchar(50) DEFAULT NULL COMMENT '姓名',`score` double DEFAULT NULL COMMENT '成绩',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*Table structure for table `user` */CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户id',`username` varchar(50) NOT NULL COMMENT '用户名',`password` varchar(50) DEFAULT NULL COMMENT '密码',`create_time` date DEFAULT NULL COMMENT '创建时间',`modify_time` date DEFAULT NULL COMMENT '最后一次修改时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
| Field | Type | Comment |
|---|---|---|
| id | int | 用户id |
| username | varchar(50) | 用户名 |
| password | varchar(50) | 密码 |
| create_time | date | 创建时间 |
| modify_time | date | 最后一次修改时间 |
| Field | Type | Comment |
|---|---|---|
| id | int | 学号 |
| name | varchar(50) | 名字 |
| score | double | 成绩 |
2、创建一个 Spring-Boot 项目

3、在 pom.xml 中导入相关依赖
<!--spring-boot-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--SpringBootTest-->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope>
</dependency>
<!--swagger-->
<dependency><groupId>io.swagger</groupId><artifactId>swagger-annotations</artifactId><version>1.6.3</version>
</dependency>
<!--lombok-->
<dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId>
</dependency>
<!--mysql 驱动-->
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.26</version>
</dependency>
<!--mybatis-plus-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version>
</dependency>
<!--mybatis-plus-generator 生成器-->
<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.5.1</version>
</dependency>
<!--velocity-->
<dependency><groupId>org.apache.velocity</groupId><artifactId>velocity-engine-core</artifactId><version>2.3</version>
</dependency>
<!--freemarker-->
<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.31</version>
</dependency>
<!--beetl 模板-->
<dependency><groupId>com.ibeetl</groupId><artifactId>beetl</artifactId><version>3.8.1.RELEASE</version>
</dependency>
注:模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker,实际使用中只导入使用模板对应的依赖即可,不用全部导入。
4、编写一个mian方法,加上框架
public static void main(String[] args) {//1、配置数据源FastAutoGenerator.create("url", "username", "password")//2、全局配置.globalConfig(...)//3、包配置.packageConfig(...)//4、策略配置.strategyConfig(...)//5、模板引擎配置.templateEngine(...)//6、执行.execute();
}
5、进行数据源配置
public static void main(String[] args) {//1、配置数据源FastAutoGenerator.create("jdbc:mysql://localhost:3306/mp", "root", "123456")//2、全局配置.globalConfig(...)//3、包配置.packageConfig(...)//4、策略配置.strategyConfig(...)//5、模板引擎配置.templateEngine(...)//6、执行.execute();
}
6、进行全局配置
注:3.5.1+版本开始支持 lambda 表达式
//2、全局配置.globalConfig(builder -> {builder.author("Jie") // 设置作者名.outputDir(System.getProperty("user.dir") + "/src/main/java") //设置输出路径.commentDate("yyyy-MM-dd hh:mm:ss") //注释日期.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;.fileOverride() //覆盖之前的文件.enableSwagger() //开启 swagger 模式.disableOpenDir(); //禁止打开输出目录,默认打开});
7、进行 包配置
//3、包配置.packageConfig(builder -> {builder.parent("com") // 设置父包名.moduleName("mp") //设置模块包名.entity("entity") //pojo 实体类包名.service("service") //Service 包名.serviceImpl("serviceImpl") // ***ServiceImpl 包名.mapper("mapper") //Mapper 包名.xml("mapper") //Mapper XML 包名.controller("controller") //Controller 包名.other("utils") //自定义文件包名.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/resources/mapper")) //配置 **Mapper.xml 路径信息:项目的 resources 目录的 Mapper 目录下});
8、策略配置
策略配置中需要对 Mapper,Service,Entity,Controller 类的生成策略进行单独的配置。
//4、策略配置.strategyConfig(builder -> {builder.addInclude("user", "student") // 设置需要生成的数据表名.addTablePrefix("t_", "c_") // 设置过滤表前缀//4.1、Mapper策略配置.mapperBuilder().superClass(BaseMapper.class) //设置父类.formatMapperFileName("%sMapper") //格式化 mapper 文件名称.enableMapperAnnotation() //开启 @Mapper 注解.formatXmlFileName("%sXml"); //格式化 Xml 文件名称//4.2、service 策略配置.serviceBuilder().formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl//4.3、实体类策略配置.entityBuilder().enableLombok() //开启 Lombok.disableSerialVersionUID() //不实现 Serializable 接口,不生产 SerialVersionUID.logicDeleteColumnName("deleted") //逻辑删除字段名.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命.addTableFills(new Column("create_time", FieldFill.INSERT),new Column("modify_time", FieldFill.INSERT_UPDATE)) //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间.enableTableFieldAnnotation() // 开启生成实体时生成字段注解//4.4、Controller策略配置.controllerBuilder().formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController.enableRestStyle() //开启生成 @RestController 控制器})
9、模板引擎配置
//5、模板引擎.templateEngine(new VelocityTemplateEngine()) //默认/*.templateEngine(new FreemarkerTemplateEngine()).templateEngine(new BeetlTemplateEngine())*/
10、执行
//6、执行.execute();
执行效果演示:
注:这里使用的是附2的交互式生成,两者源码几乎没有区别。


附1:快速生成样例代码
public class Generator {public static void main(String[] args) {//1、配置数据源FastAutoGenerator.create("jdbc:mysql://localhost:3306/yeb", "root", "123456")//2、全局配置.globalConfig(builder -> {builder.author("Jie") // 设置作者名.outputDir(System.getProperty("user.dir") + "/src/main/java") //设置输出路径:项目的 java 目录下.commentDate("yyyy-MM-dd hh:mm:ss") //注释日期.dateType(DateType.ONLY_DATE) //定义生成的实体类中日期的类型 TIME_PACK=LocalDateTime;ONLY_DATE=Date;.fileOverride() //覆盖之前的文件.enableSwagger() //开启 swagger 模式.disableOpenDir(); //禁止打开输出目录,默认打开})//3、包配置.packageConfig(builder -> {builder.parent("com") // 设置父包名.moduleName("mp") //设置模块包名.entity("pojo") //pojo 实体类包名.service("service") //Service 包名.serviceImpl("serviceImpl") // ***ServiceImpl 包名.mapper("mapper") //Mapper 包名.xml("mapper") //Mapper XML 包名.controller("controller") //Controller 包名.other("utils") //自定义文件包名.pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir") + "/src/main/resources/mapper")); //配置 mapper.xml 路径信息:项目的 resources 目录下})//4、策略配置.strategyConfig(builder -> {builder.addInclude("user", "student") // 设置需要生成的数据表名.addTablePrefix("t_", "c_") // 设置过滤表前缀//4.1、Mapper策略配置.mapperBuilder().superClass(BaseMapper.class) //设置父类.formatMapperFileName("%sMapper") //格式化 mapper 文件名称.enableMapperAnnotation() //开启 @Mapper 注解.formatXmlFileName("%sXml")//格式化 Xml 文件名称//4.2、service 策略配置.serviceBuilder().formatServiceFileName("%sService") //格式化 service 接口文件名称,%s进行匹配表名,如 UserService.formatServiceImplFileName("%sServiceImpl") //格式化 service 实现类文件名称,%s进行匹配表名,如 UserServiceImpl//4.3、实体类策略配置.entityBuilder().enableLombok() //开启 Lombok.disableSerialVersionUID() //不实现 Serializable 接口,不生产 SerialVersionUID.logicDeleteColumnName("deleted") //逻辑删除字段名.naming(NamingStrategy.underline_to_camel) //数据库表映射到实体的命名策略:下划线转驼峰命.columnNaming(NamingStrategy.underline_to_camel) //数据库表字段映射到实体的命名策略:下划线转驼峰命.addTableFills(new Column("create_time", FieldFill.INSERT),new Column("modify_time", FieldFill.INSERT_UPDATE)) //添加表字段填充,"create_time"字段自动填充为插入时间,"modify_time"字段自动填充为插入修改时间.enableTableFieldAnnotation() // 开启生成实体时生成字段注解//4.4、Controller策略配置.controllerBuilder().formatFileName("%sController") //格式化 Controller 类文件名称,%s进行匹配表名,如 UserController.enableRestStyle(); //开启生成 @RestController 控制器})//5、模板.templateEngine(new VelocityTemplateEngine())/*.templateEngine(new FreemarkerTemplateEngine()).templateEngine(new BeetlTemplateEngine())*///6、执行.execute();}
}
附2:交互式生成样例代码
public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("=====================数据库配置=======================");System.out.println("请输入 URL");String url = scan.next();System.out.println("请输入 username");String username = scan.next();System.out.println("请输入 password");String password = scan.next();FastAutoGenerator.create(url, username, password)// 全局配置.globalConfig((scanner, builder) -> builder.author(scanner.apply("=====================全局配置=======================\n请输入作者名称?")).outputDir(System.getProperty("user.dir") + "/src/main/java").commentDate("yyyy-MM-dd hh:mm:ss").dateType(DateType.TIME_PACK).enableSwagger().fileOverride().enableSwagger().disableOpenDir())// 包配置.packageConfig((scanner, builder) -> builder.parent(scanner.apply("=====================包配置=======================\n请输入包名?")).moduleName(scanner.apply("请输入父包模块名?")).entity("entity").service("service").serviceImpl("serviceImpl").mapper("mapper").xml("mapper").other("utils").pathInfo(Collections.singletonMap(OutputFile.mapperXml, System.getProperty("user.dir")+"/src/main/resources/mapper")))// 策略配置.strategyConfig((scanner, builder) -> {builder.addInclude(getTables(scanner.apply("=====================策略配置=======================\n请输入表名,多个英文逗号分隔?所有输入 all"))).serviceBuilder().formatServiceFileName("%sService").formatServiceImplFileName("%sServiceImpl").entityBuilder() //实体类策略配置.enableLombok() //开启 Lombok.disableSerialVersionUID().logicDeleteColumnName("deleted") //逻辑删除字段.naming(NamingStrategy.underline_to_camel).columnNaming(NamingStrategy.underline_to_camel).addTableFills(new Column("create_time", FieldFill.INSERT), new Column("modify_time", FieldFill.INSERT_UPDATE)).enableTableFieldAnnotation() // 开启生成实体时生成字段注解.controllerBuilder().formatFileName("%sController").enableRestStyle().mapperBuilder().superClass(BaseMapper.class).formatMapperFileName("%sMapper").enableMapperAnnotation() //@mapper.formatXmlFileName("%sMapper");})/*模板引擎配置,默认 Velocity 可选模板引擎 Beetl 或 Freemarker.templateEngine(new BeetlTemplateEngine()).templateEngine(new FreemarkerTemplateEngine())*/.execute();
}// 处理 all 情况
protected static List<String> getTables(String tables) {return "all".equals(tables) ? Collections.emptyList() : Arrays.asList(tables.split(","));
}
相关文章:
MyBatis-Plus——代码生成器(3.5.1+版本)
文章目录配置数据源配置(DataSource)全局配置(GlobalConfig)包配置(PackageConfig)策略配置(StrategyConfig)模板引擎配置(TemplateEngine)代码生成器测试样例…...
宁盾上榜第五版《CCSIP 2022 中国网络安全行业全景册》
2月1日,国内网络安全行业媒体Freebuf咨询正式发布《CCSIP(China Cyber Security Panorama)2022 中国网络安全行业全景册》第五版。宁盾作为国产身份安全厂商入驻身份识别和访问管理(SSO、OTP、IDaaS)及边界访问控制&am…...
【Linux系统】第七篇:Linux调试器gdb的使用
文章目录一、gdb简介二、gdb的安装三、gdb使用3.1、release和debug版本3.2、gdb基本使用命令1、启动gdb2、调试命令3、显示代码(list)4、断点命令(breakpoint)5 、变量命令(variable)6、特殊调试命令7、调用…...
Shell 特殊变量及其含义
shell是我们在linux下编写自动执行程序的常见脚本工具,通常会涉及到以下几个特殊变量,它们分别是:$#、$*、$、$?、$$。 变量含义$0当前脚本的文件名。$n(n≥1)传递给脚本或函数的参数。n 是一个数字,表示…...
LeetCode 2396. 严格回文的数字
如果一个整数 n 在 b 进制下(b 为 2 到 n - 2 之间的所有整数)对应的字符串 全部 都是 回文的 ,那么我们称这个数 n 是 严格回文 的。 给你一个整数 n ,如果 n 是 严格回文 的,请返回 true ,否则返回 fals…...
【RocketMQ】源码详解:Broker启动流程
Broker启动 入口: org.apache.rocketmq.broker.BrokerStartup#main broker的启动主要分为两部分:1.创建brokerController 2.启动brokerController。与平时进行业务开发时不同的是,这里的BrokerController相当于Broker的一个中央控制器类&…...
vue事件
1. 事件传参 <button click"clickEvt($event, 22)">点我</button>2. 事件修饰符 prevent:阻止默认事件stop:阻止事件冒泡(加到子元素)once:事件只触发一次capture:使用事件的捕获模…...
研报精选230220
目录 【行业230220国信证券】银行业行业专题:经济复苏中的优质中小银行【行业230220国信证券】汽车行业周报(2023年第7周):吉利将发布新品牌“银河” ,2022年宇通纯电动客车获欧洲销量冠军【行业230220开源证券】商贸零…...
kubernetes sd configs配置详解
1.基于Kubernetes的服务发现 kubernetes_sd_config 这个是以角色(role)来定义收集的,Kubernetes SD配置允许从Kubernetes的RESTAPI中检索scrape目标,并始终与群集状态保持同步。 凡<role>必须是endpoints,service,pod&…...
Linux查看文件的命令
目录 1、tail 2、head 3、cat 4、more 5、sed 6、less Linux查看日志的命令有多种: tail、cat、tac、head、echo等,本文只介绍几种常用的方法。 1、tail 命令格式: tail[必要参数][选择参数][文件] -f 循环读取 -q 不显示处理信息 -v 显示详细的处理信…...
如何单独清除某个网页的缓存(reload)
有时候在自己服务器上调试的时候,刷新一直不更新,样式改了也看不到,就很烦 今天教你一个方法快速清除 F12 控制台情况下右击左上角的刷新 这三个分别代表: ①正常重新加载(Ctrl R): 正常重新加载 此方法,浏览器发送请求时会…...
魔兽世界经典怀旧服务器架设教程
准备工具:MySQL服务端服务器最重要的你需要会技术、要不然都瞎扯 给你东西你也看不懂。教程开始:安装MySQL并创建数据库安装MySQL社区版,并配置SQL服务器。安装SQLyog。利用其登录,创建realmd、characters、mangos、scriptdev2数据…...
Interview系列 - 05 Java|Iterator迭代器|集合继承体系|Set List Map接口特性|List实现类区别
文章目录01. 迭代器 Iterator 是什么?02. 迭代器 Iterator 有什么特点?03. 迭代器 Iterator 怎么使用?04. 如何边遍历边移除 Collection 中的元素?05. Iterator 和 ListIterator 有什么区别?06. 数组和集合的区别&…...
LeetCode 1769. 移动所有球到每个盒子所需的最小操作数
有 n 个盒子。给你一个长度为 n 的二进制字符串 boxes ,其中 boxes[i] 的值为 ‘0’ 表示第 i 个盒子是 空 的,而 boxes[i] 的值为 ‘1’ 表示盒子里有 一个 小球。 在一步操作中,你可以将 一个 小球从某个盒子移动到一个与之相邻的盒子中。…...
MKS SKIPR V1.0船长版(Voron 2.4 R2)配置简要笔记
第一次用MKS SKIPR V1.0,设置过程中,也不知道怎么回事,跟现有的资料有些出入。首先,基本的配置调试可以参考官方的使用说明。 MKS SKIPR V1.0 使用说明书 这个说明比较简单,很多深一点的东西没有提现,不过…...
90后,转行软件测试3年,从月入7000+到月入过万,整理出的这一万字经验分享。
周一发工资了,到手12857.65,美滋滋 今年是我毕业参加工作的第3年,工资终于来到5位数了。上一家公司月薪7000,实际拿到手就6450左右,感觉今年真的是元气满满啊,工资翻倍,良好的人生开端。 想起…...
Java之关于String字符串笔试面试重点
目录 一.关于字符串的常量池 1.关于字符串产生的三种方式 2.关于字符串的常量池 3.直接赋值法和new的方式产生对象的区别 二.关于intern方法 1.情况一(已经包含) 2.情况二(已经包含) 3.情况三(未包含) 4.情况四 三.关于字符串的不可变性 1.了解字符串的不可变性 2.Str…...
mdio协议
1. 简介 MDIO接口中有特定的术语定义总线上的各种设备,驱动MDIO总线的设备被定义为站管理实体(STA),而被MDC管理的目标设备称为可被MDIO管理的设备(MMD)。 STA初始化MDIO所有的通信,同时负责驱动…...
kubectl命令
kubectl命令是操作 Kubernetes 集群的最直接和最高效的途径。 1、kubectl自动补全 $ source <(kubectl completion bash) # setup autocomplete in bash, bash-completion package should be installed first. $ source <(kubectl completion zsh) # setup autocomple…...
题库-JAVASE01
文章目录1.JAVA开发环境2.JAVA变量3.JAVA基本类型4.运算符和表达式5.分支结构6.循环结构7.数组8.方法1.JAVA开发环境 (单选题)在Java中,以下描述错误的是( ) A…class是源文件 B…java是编译前的源文件 C…class是编译后的文件 D.Java程序需…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
微信小程序之bind和catch
这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统
目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索(基于物理空间 广播范围)2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
嵌入式学习笔记DAY33(网络编程——TCP)
一、网络架构 C/S (client/server 客户端/服务器):由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序,负责提供用户界面和交互逻辑 ,接收用户输入,向服务器发送请求,并展示服务…...
