1. 定义配置文件信息
有时候我们为了统一管理会把一些变量放到 yml 配置文件中
例如
文章图片
用 @ConfigurationProperties 代替 @Value
使用方法
定义对应字段的实体
【java|写简洁java代码的小技巧】@Data
// 指定前缀
@ConfigurationProperties(prefix = "developer")
@Component
public class DeveloperProperty {
private String name;
private String website;
private String qq;
private String phoneNumber;
}
@Data
// 指定前缀
@ConfigurationProperties(prefix = "developer")
@Component
public class DeveloperProperty {
private String name;
private String website;
private String qq;
private String phoneNumber;
}
使用时注入这个bean
@RestController
@RequiredArgsConstructor
public class PropertyController {
final DeveloperProperty developerProperty;
@GetMapping("/property")
public Object index() {
return developerProperty.getName();
}
}
2. 用@RequiredArgsConstructor代替@Autowired
我们都知道注入一个 bean 有三种方式哦(set 注入, 构造器注入, 注解注入),Spring 推荐我们使用构造器的方式注入 Bean
我们来看看上段代码编译完之后的样子
![java|写简洁java代码的小技巧](https://img.it610.com/image/info8/16d18de322f2444db7a2fa557d273132.jpg)
文章图片
RequiredArgsConstructor:lombok提供
3. 不要返回 null 反例
![java|写简洁java代码的小技巧](https://img.it610.com/image/info8/48bfb6b00e3d4d7fb7e0151c5cdf151d.jpg)
文章图片
正例
![java|写简洁java代码的小技巧](https://img.it610.com/image/info8/0d9529a290fb428ebb26b2bd827d456c.jpg)
文章图片
别处调用方法时,避免不必要的空指针
optional 判空
//获取子目录列表
public List getChild(String pid) {
if (V.isEmpty(pid)) {
pid = BasicDic.TEMPORARY_DIRECTORY_ROOT;
}
CatalogueTreeNode node = treeNodeMap.get(pid);
return Optional.ofNullable(node)
.map(CatalogueTreeNode::getChild)
.orElse(Collections.emptyList());
}
4. if else 不要太多了if else if,可以试试策略模式代替
5. 减少controller业务代码 业务代码尽量放到service层进行处理,后期维护起来也好操作而且美观
反例
![java|写简洁java代码的小技巧](https://img.it610.com/image/info8/cb16bd383c084410ad3eee163ddd41cd.jpg)
文章图片
正例
![java|写简洁java代码的小技巧](https://img.it610.com/image/info8/309bca57ddf0492b8d61ae2906c3215b.jpg)
文章图片
推荐阅读
- 程序员|这款开源测试神器,圆了我玩游戏不用动手的梦想
- android|Android 实现模拟地图定位功能
- python|基于Python的阴阳师后台全平台辅助
- 2022年【米哈游】 金三银四 三月内推开始啦!不加班福利好,200+个岗位任你挑选,赶快来看吧!
- 架构师|年后腾讯、阿里、滴滴后台面试题汇总总结 — (含答案)
- 如何写一份优秀的Java程序员简历
- 多线程控制 countDownLatch、CyclicBarrier、Semaphore 总结
- 编程语言|TypeScript的另一面(类型编程)
- c++|c++中的extern c以使用