目录标题
1.热部署和热加载devtools
在搭建springboot项目中往controller类加入注解@RestController(@RestController + @RequestMapping)后,我们就可以通过http请求访问结果,可当我修改代码或增加文件后,我想要通过http请求访问最新结果就需要一遍又一遍地在IDEA中重新启动项目。这时使用devtools可以节省你的时间
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
下一步按住这几个键Ctrl+Shift+Alt+/,选中Registry ,在弹出的提示框中找到compiler.automake.allow.when.app.running如下图所示并打钩,就可以顺利使用热部署了。
然后是热加载,这个不是很推荐,因为你修改了一部分代码,它都会自动识别到,然后一直在下面给你自动编译之类的,不推荐。
2.lombok插件
Lombok 是一种 Java 实用工具,可用来帮助开发人员消除 Java 的冗长,尤其是对于简单的 Java 对象(POJO)。它通过注释实现这一目的。
可以通过idea中插件市场来搜索lombok,搜不到就导入maven坐标,还是不行你就去我百度云下载压缩包(推荐,我放了很多包),然后导入进idea,如何导入请自行百度,这点检索能力你应该要有。
百度云链接(推荐):链接:https://pan.baidu.com/s/1bsxzkZt37Vz6yEfz77Dg4Q
提取码:i6e5
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
<scope>provided</scope>
</dependency>
Lombok的scope=provided,说明它只在编译阶段生效,不需要打入包中。事实正是如此,Lombok在编译期将带Lombok注解的Java文件正确编译为完整的Class文件。
2.1常用注解
我平时最常用到的就是如下代码中的注解:
@Data
@Slf4j
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Person {
// 导入了@Slf4j下面这行代码就可以不用写了
// private static final Logger log= LoggerFactory.getLogger(Person.class);
private String name;
private Integer age;
}
//测试类进行测试输出
@SpringBootTest
@Slf4j
class SpringbootConfigApplicationTests {
@Test
void contextLoads() {
Person person = Person.builder()
.name("爆炸广")
.age(43)
.build();
log.info("使用插件开发效率高"+person);
}
}
输出:
@Data
,注解在类上;提供类所有属性的 getting 和 setting方法,此外还提供了equals、canEqual、hashCode、toString 方法,说白了我用它可以直接不写getter和setter方法,@Slf4j
可以不用写相应代码,直接log.info("使用插件开发效率高");
private static final Logger log= LoggerFactory.getLogger(Person.class);
@Builder
可以链式赋值
Person person = Person.builder()
.name("爆炸广")
.age(43)
.build();
@AllArgsConstructor
自动生成全参的构造函数,如下:
@ConstructorProperties({"name", "age"})
public Person(final String name, final Integer age) {
this.name = name;
this.age = age;
}
@ToString
:作用于类,覆盖默认的toString()方法,可以通过of属性限定显示某些字段,通过exclude属性排除某些字段。@Setter
:注解在属性上;为属性提供 setting 方法@Getter
:注解在属性上;为属性提供 getting 方法@NoArgsConstructor
:注解在类上;为类提供一个无参的构造方法@Cleanup
: 可以关闭流@Synchronized
: 加个同步锁@SneakyThrows
: 等同于try/catch 捕获异常@NonNull
: 如果给参数加个这个注解 参数为null会抛出空指针异常@Value
: 注解和@Data类似,区别在于它会把所有成员变量默认定义为private final修饰,并且不会生成set方法。@Log
:作用于类上,生成日志变量。针对不同的日志实现产品,有不同的注解:
2.2参考文档
官方文档: https://projectlombok.org/features/all
Maven坐标库:https://mvnrepository.com/search?q=lombok
lombok注解介绍: http://blog.youkuaiyun.com/sunsfan/article/details/53542374
3.codota,我们的AI小助手
Codota会学习我们如何在编程,然后反过来帮助我们更好的编程。它会使用AI和机器学习技术来给工作中的人提供与正在写的代码相关的建议。同时它也可以帮助我们自动补全代码。安装方式可以通过plugins中搜索 codota 来安装。如果你的IDEA安装插件很慢,可以离线安装:进入IDEA插件搜索 codota, 进入下载页:http://plugins.jetbrains.com/plugin/7638-codota/versions
- 整行代码自动补全
基于海量Java代码和你的代码上下文给予整行的代码建议,帮助你更快地编写错误更少的代码
- 搜索类似代码示例
如果你需要某些API的使用示例。Codota可以根据代码上下文帮你搜索出最好的代码示例。
4.Rainbow Brackets(彩虹括号)
可以实现配对括号相同颜色,并且实现选中区域代码高亮的功能。对增强写代码的有趣性和排错等都有一些帮助。IDEA在插件库里搜插件“Rainbow Brackets”即可。
插件GitHub地址:https://github.com/izhangzhihao/intellij-rainbow-brackets
插件地址:https://plugins.jetbrains.com/plugin/10080-rainbow-brackets
5.gsonformat属性生成器
这个插件作用主要是将JSONObject格式的String 解析成实体。可以在插件市场搜到,也可以如下离线。
插件地址:https://plugins.jetbrains.com/idea/plugin/7654-gsonformat
假如我有如下的json字符串,可以通过这个插件生成对应的实体类
{
"market":"宠物商店",
"Telphone":"14256412",
"dog":
{
"name":"金毛",
"age":"3",
"money":"3500"
},
"cat":
{
"name":"英国短毛猫",
"age":"2",
"money":"2500"
}
}
首先生成一个animal实体类,然后在代码内按alt+s,注意是类里面按快捷键,不然会弹不出窗口。复制json进去就可以生成了。