jsoncat: https://github.com/Snailclimb/jsoncat (About
仿 Spring Boot 但不同于 Spring Boot 的一個輕量級的 HTTP 框架)
邊看英雄聯盟比賽,邊和小伙伴們簡單聊聊簡易版的“Spring Boot”的近況吧!JDG 沖沖沖!!!
全文內容不會很多,因為不會詳細介紹實作程序,大家節假日肯定也不想看,后面會詳細寫文章分享自己的實作程序比如 Spring MVC、IoC 模塊到底是咋實作的(最簡化原則實作,能用最少的代碼就用最少的代碼,便于維護,便于學習),
9.29號的晚上,我已經在老家了,
晚上和女票還有妹妹一起開黑打完游戲之后,已經到了快11點,有點睡不著,內心躁動,就把 HTTP 框架的 IoC 的基本功能給實作了,

第二天,我又抽出了一些時間,對其進行了優化和重構,
目前不光支持 @Autowired(注入物件) 和 @Component (宣告物件被 IoC 容器管理),還支持 @Qualifier(指定注入的bean),
簡單給大家看一下效果!
宣告一個介面:SmsService.java
public interface SmsService {
String send(SmsDto smsDto);
}
實作類1:AliSmsServiceImpl.java
@Component(name = "aliSmsServiceImpl")
public class AliSmsServiceImpl implements SmsService {
@Override
public String send(SmsDto smsDto) {
System.out.println("send message to " + smsDto.getPhone());
return AliSmsServiceImpl.class.getSimpleName();
}
}
實作類2:QiNiuSmsServiceImpl.java
@Component(name = "qiNiuSmsServiceImpl")
public class QiNiuSmsServiceImpl implements SmsService {
@Override
public String send(SmsDto smsDto) {
System.out.println("send message to " + smsDto.getPhone());
return QiNiuSmsServiceImpl.class.getSimpleName();
}
}
post請求傳輸類:SmsDto.java
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SmsDto {
private String phone;
}
controller: SmsController.java
@RestController("/sms")
public class SmsController {
@Autowired
@Qualifier("aliSmsServiceImpl")
private SmsService smsService;
@PostMapping("/send")
public String send(@RequestBody SmsDto smsDto) {
return smsService.send(smsDto);
}
}
使用 post 請求呼叫 /sms/send 介面

截止目前,我已經把 Spring MVC 相關常用的注解比如 @GetMapping 、@PostMapping 、@PathVariable 以及 IoC 相關的注解比如 @Autowired、@Component、@Qualifier實作了,
后續,會開始實作 AOP 相關的功能,
另外,為了方便小伙伴們學習,我今天下午又把包結構進行了重構,并且完善了一下注釋,
包結構方面的重構,主要就是將 Spring MVC 和 IoC 的核心實作類提到了一個包下面,這樣,小伙伴們想要看某一個功能模塊的具體實作的話,就比較方便了,

這幾天,除了10.1號和10.2號沒有寫代碼之外,我花了大量時間重構代碼,
我花在重構代碼的時間經常比實作功能的時間花的更多,這其實是挺正常的!重構代碼的是編碼程序中必不可少的環節,千萬不要覺得自己的代碼寫了之后就不需要重構了!
另外,為了給重構代碼提高保障,我不得不寫了一些測驗,通過測驗保障,確實為我節省了很多時間,也讓我更敢進行重構,

我是 Guide 哥,一 Java 后端開發,會一點前端,自由的少年,我們下期再見!微信搜“JavaGuide”回復“面試突擊”領取我整理的 4 本原創PDF
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/158092.html
標籤:Java
上一篇:攜手分布式存盤 助力智慧城市建設
下一篇:PHP Fatal error: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 4096 bytes)
