# 1. idea安装插件
![](https://img.kancloud.cn/ef/26/ef263f97341fe5063f2ea70d5aee408e_1225x294.png)
分为default和mybatis-plus分组
# 2. 自定义代码模板配置
![](https://img.kancloud.cn/d7/5d/d75d2f47633d05b3b7fb825251f5203f_1022x662.png)
## 2.1 替换生成代码表名前缀
例如表名 `t_pest_data_ecological`会生成`TPestDataEcologicalController`
![](https://img.kancloud.cn/73/90/739056791c9ce5a5e9d6bf1a57fc9a6c_1505x476.png)
就是从init中拷贝出来的
![](https://img.kancloud.cn/09/79/0979d2853a2ba929181d89db61c9b334_1267x310.png)
## 2.2 修改代码
![](https://img.kancloud.cn/c5/15/c515020cdb47c5d0ce33340832511168_1140x526.png)
# 3. 生成代码
右键表名
![](https://img.kancloud.cn/4d/b3/4db3fccfd74f2277c43f96a4df30b637_1079x308.png)
![](https://img.kancloud.cn/b2/ae/b2aeacde613c60bcca403fa96e6cdcd4_973x503.png)
# 2. JSON
## 2.1
根据json数据自动生成JavaBean的属性
![](https://img.kancloud.cn/e1/99/e199a7b41b33b9de07c8c7dfe58e6413_1329x519.png)
![](https://img.kancloud.cn/92/f8/92f88da0cc4e70b4a7a3427d126d981e_1328x579.png)
![](https://img.kancloud.cn/3a/e9/3ae96d8d552bab4df4881d4d7727bf48_596x373.png)
![](https://img.kancloud.cn/3d/5f/3d5fa00a82b13fac36e1257a5758f57b_954x621.png)
```
{
"pestName": "落叶松落叶病",
"statistics": [
{
"monitorYear": 2016,
"pestName": "落叶松落叶病",
"totalPestArea": 0
},
{
"monitorYear": 2017,
"pestName": "落叶松落叶病",
"totalPestArea": 0
},
{
"monitorYear": 2018,
"pestName": "落叶松落叶病",
"totalPestArea": 0
},
{
"monitorYear": 2019,
"pestName": "落叶松落叶病",
"totalPestArea": 0
},
{
"monitorYear": 2020,
"pestName": "落叶松落叶病",
"totalPestArea": 0
}
]
}
```
生成代码
~~~
public class Animal {
/**
* pestName : 落叶松落叶病
* statistics : [{"monitorYear":2016,"pestName":"落叶松落叶病","totalPestArea":0},{"monitorYear":2017,"pestName":"落叶松落叶病","totalPestArea":0},{"monitorYear":2018,"pestName":"落叶松落叶病","totalPestArea":0},{"monitorYear":2019,"pestName":"落叶松落叶病","totalPestArea":0},{"monitorYear":2020,"pestName":"落叶松落叶病","totalPestArea":0}]
*/
private String pestName;
private List<StatisticsBean> statistics;
public String getPestName() {
return pestName;
}
public void setPestName(String pestName) {
this.pestName = pestName;
}
public List<StatisticsBean> getStatistics() {
return statistics;
}
public void setStatistics(List<StatisticsBean> statistics) {
this.statistics = statistics;
}
public static class StatisticsBean {
/**
* monitorYear : 2016
* pestName : 落叶松落叶病
* totalPestArea : 0
*/
private int monitorYear;
private String pestName;
private int totalPestArea;
public int getMonitorYear() {
return monitorYear;
}
public void setMonitorYear(int monitorYear) {
this.monitorYear = monitorYear;
}
public String getPestName() {
return pestName;
}
public void setPestName(String pestName) {
this.pestName = pestName;
}
public int getTotalPestArea() {
return totalPestArea;
}
public void setTotalPestArea(int totalPestArea) {
this.totalPestArea = totalPestArea;
}
}
}
~~~
## 2.2 json2java
右键选择
![](https://img.kancloud.cn/a0/11/a0116362ca1f18febbeabc4930412095_1134x560.png)
复制字符串
![](https://img.kancloud.cn/43/7f/437f4abcba5835e616a48e22addddeee_1474x653.png)
# 3. Codota
极其强大的代码自动补全
**Tabnine** 用于替代Codota,实现代码补全
# 5. 自动生成set方法
**GenerateAllSetter**,一键调用一个对象的所有set方法并且赋予默认值 在对象字段多的时候非常方便,在做项目时,每层都有各自的实体对象需要相互转换,但是考虑BeanUtil.copyProperties()等这些工具的弊端,有些地方就需要手动的赋值时,有这个插件就会很方便,创建完对象后在变量名上面按Alt+Enter就会出来 generate all setter选项。
![](https://img.kancloud.cn/ab/9c/ab9c66a7a30a1c85ce3de3666177efb5_490x128.png)
# 6. 驼峰
idea菜单栏-file-settings-plugins-在marketplace搜索“CamelCase”-点击安装
![](https://img.kancloud.cn/92/65/926586076037b4e3be8cd38732f96023_760x210.png)
idea菜单栏-file-settings-editor-camel\_case,选中自己常用的格式点击保存
![](https://img.kancloud.cn/95/d1/95d18e6525ab663046fda4230b3da066_730x518.png)
重新打开idea,选中内容,使用快捷键:shit+alt+u,就会转换
# 7. Alibaba Java Coding Guidelines
首先要推荐的是和《手册》配套的[阿里巴巴 Java代码规范插件](https://link.zhihu.com/?target=https%3A//plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines)。
安装该插件后,代码超过 80 行、手动创建线程池等,这些和《手册》中的规约不符时,IDEA中会给出警告提示。
建议大家一定一定一定要安装该插件,它会帮助你检查出很多隐患,督促你写更规范的代码。
# myabtis
# MyBatisCodeHelperPro (Marketplace Edition)
下载适用版本
https://plugins.jetbrains.com/plugin/14522-mybatiscodehelperpro-marketplace-edition-/versions
# 8. aiXcoder
智能补全代码
- 计算机网络
- 基础_01
- tcp/ip
- http转https
- Let's Encrypt免费ssl证书(基于haproxy负载)
- what's the http?
- 网关
- 网络IO
- http
- 工具
- Git
- 初始本地仓库并上传
- git保存密码
- Gitflow
- maven
- 1.生命周期命令
- 聚合与继承
- 插件管理
- assembly
- 资源管理插件
- 依赖范围
- 分环境打包
- dependencyManagement
- 版本分类
- 找不到主类
- 无法加载主类
- 私服
- svn
- gradle
- 手动引入第三方jar包
- 打包exe文件
- Windows
- java
- 设计模式
- 七大原则
- 1.开闭原则
- 2. 里式替换原则
- 3. 依赖倒置原则
- 4. 单一职责原则
- 单例模式
- 工厂模式
- 简单工厂
- 工厂方法模式
- 抽象工厂模式
- 观察者模式
- 适配器模式
- 建造者模式
- 代理模式
- 适配器模式
- 命令模式
- json
- jackson
- poi
- excel
- easy-poi
- 规则
- 模板
- 合并单元格
- word
- 读取
- java基础
- 类路径与jar
- 访问控制权限
- 类加载
- 注解
- 异常处理
- String不可变
- 跨域
- transient关键字
- 二进制编码
- 泛型1
- 与或非
- final详解
- Java -jar
- 正则
- 读取jar
- map
- map计算
- hashcode计算原理
- 枚举
- 序列化
- URLClassLoader
- 环境变量和系统变量
- java高级
- java8
- 1.Lambda表达式和函数式接口
- 2.接口的默认方法和静态方法
- 3.方法引用
- 4.重复注解
- 5.类型推断
- 6.拓宽注解的应用场景
- java7-自动关闭资源机制
- 泛型
- stream
- 时区的正确理解
- StringJoiner字符串拼接
- 注解
- @RequestParam和@RequestBody的区别
- 多线程
- 概念
- 线程实现方法
- 守护线程
- 线程阻塞
- 笔试题
- 类加载
- FutureTask和Future
- 线程池
- 同步与异步
- 高效简洁的代码
- IO
- ThreadLocal
- IO
- NIO
- 图片操作
- KeyTool生成证书
- 压缩图片
- restful
- 分布式session
- app保持session
- ClassLoader.getResources 能搜索到的资源路径
- java开发规范
- jvm
- 高并发
- netty
- 多线程与多路复用
- 异步与事件驱动
- 五种IO模型
- copy on write
- code style
- 布隆过滤器
- 笔试
- 数据库
- mybatis
- mybatis与springboot整合配置
- pagehelper
- 分页数据重复问题
- Java与数据库之间映射
- 拦截器
- 拦截器应用
- jvm
- 堆内存测试
- 线程栈
- 直接内存
- 内存结构
- 内存模型
- 垃圾回收
- 调优
- 符号引用
- 运行参数
- 方法区
- 分带回收理论
- 快捷开发
- idea插件
- 注释模板
- git
- pull冲突
- push冲突
- Excel处理
- 图片处理
- 合并单元格
- easypoi
- 模板处理
- 响应式编程
- reactor
- reactor基础
- jingyan
- 规范
- 数据库