# why-simpleboot-framework **Repository Path**: why741/why-simpleboot-framework ## Basic Information - **Project Name**: why-simpleboot-framework - **Description**: 基于netty的Http+Rpc框架 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2021-05-21 - **Last Updated**: 2023-06-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # why-simpleboot-framework ## 一款基于netty的Http+Rpc框架 该项目使用 Netty 作为底层的HTTP服务器并整合了自定义的RPC框架,支持类似dubbo的远程调用和简单的http请求。 该项目所有的http请求返回值均为json格式。并且目前仅仅能处理get和post请求。 功能实现上参考了些spring和springboot的源码思想. 项目借鉴了 Guide 哥和[SLWF](http://https://github.com/nerososft/SLWF)部分代码。 ## 功能实现 ### 自定义的IOC功能 @Autowired :完成依赖注入功能 @Component:被该注解标注的都会加入IOC容器 @Value:完成配置文件的属性注入 @Qualifier: 完成指定类型bean的注入,如果注入的是一个接口并且有多个实现类,那此时就需要用它来指定注入的实现类,否则报错。 解决循环依赖和依赖注入一致性问题 ### 自定义的AOP功能 基于拦截器实现的AOP,根据类是否有接口分别实现了Cglib动态代理和JDK动态代理。 @Aspect:声明切入类 @Pointcut:指定切入位置 @Before:前置通知 @After:后置通知 ### 自定义的仿SpringMVC功能 Get 请求和 POST 请求处理 @GetMapping : 完成Get 请求的处理 @PostMapping :完成Post 请求的处理 @RequestBody : 接收前端post请求发送的json字符串 @RequestParam :获取 Get 请求的 URL 查询参数 @PathVariable : 获取 URL 中的参数/占位符 @RestController:声明该类是一个处理器 ### 其他自定义的注解 @SimpleBootApplication:类似springboot,为启动类标注该注解,通过使用SimpleBootStarter.run();完成启动类的启动。 @import:搭配`ImportAfter`和`ImportBefore`,完成在容器初始化前后的一些对容器的操作。 ### 自定义的RPC功能 @RpcService:声明该类是远程调用中的提供者。 @RpcScan:导入了一个`ImportAfter`的实现类,该实现类完成了服务的注册。 @RpcConsumer:被该注解标注的类是远程调用中的消费者。 @RpcClient:导入了一个`ImportBefore`的实现类,该实现类完成了对接口的代理对象的生成。 ### 完成配置文件读取 支持读取properties 类型的文件。 # 开撸迷你mybatis