关于spring:手写SpringBoot近况IoC模块已经完成

42次阅读

共计 1876 个字符,预计需要花费 5 分钟才能阅读完成。

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

正文完
 0