自己动手写Spring框架--IOC、MVC
自己动手写Spring框架--IOC、MVC
对于一名Java开发人员,我相信没有人不知道 Spring 框架,而且也能够轻松就说出 Spring 的特性-- IOC、MVC、AOP、ORM(batis)。
看那么多 Spring 源码分析,不如自己动手写 个轻量的 Spring 框架。
下面我想简单介绍一下我写的轻量级的 Spring 框架(swift-framework),并且进行核心逻辑的分析,和使用说明。
提示:以下有大量图片,可以在新页面查看图片。
目录:
自己动手写Spring框架--IOC、MVC
-- 怎么使用 swift-framework 框架
-- 跟着 debug 走流程
自己动手写Spring框架--AOP、ORM
-- 敬请期待
怎么使用 swift-framework 框架
下载jar包,引入到自己的新项目中。再要做的就是很简单了。
示例:
@Controller 注解:标注controller类。
@Inject 注解:依赖注入类,自动注入依赖的实现类。
@Action(value = "get:/hello") 注解:标注访问行为,‘get’是请求类型,‘/hello’是请求路径。
(暂时先介绍这三个注解类)
配置文件:
这里需要注意:
1.配置文件名称一定要是 “swift.properties” 。
2. #扫描类的根目录
swift.framework.app.base_package=org.swift.chapter
一定需要配置根目录。
跟着 debug 走流程
下面大致介绍一下处理的逻辑流程,详细的代码可以去 github上查看。
处理逻辑的入口:DispatcherServlet
这一次可以看一下,
ClassHelper,BeanHelper,ControllerHelper ,IocHelper 这四个类都干了些什么。
BeanHelper
ControllerHelper (在 ACTION_REGISTER 中,存放 【请求类型、请求路径】 对应的 【执行类、执行方法】)
到此为止,已经做好了 IOC、MVC 的准备工作,现在就是使用的时候。
以上就是一次从前端的请求,在 swift-framework 框架中的执行过程的分析的大致过程,如果需要观看源码,可以去 GIT 下载。
原文地址https://www.cnblogs.com/zhaww/p/11320825.html
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
最近学到的前后端分离知识
前言 只有光头才能变强。 文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y 前后端分离这个词相信大家都听过,不知道大家是怎么理解的呢。前阵子看项目的时候,有一段实现硬是没看懂,下面来给大家说一下一段愚蠢的经历哈。 (我没正正式式写过前端,所以如果文章有错的地方希望可以在评论区友善交流~) 一、交代背景 我一直都知道我现在的这个系统是前后端分离的,我的接口只会返回JSON出去,但我不曾关心前端是怎么处理我的JSON数据的(以及他是怎么跑通和运行的) 在某一天,我在查接口的时候,习惯F12,想直接看一下这个请求返回的JSON数据是什么。但是一看,在network返回的是html格式: 于是,我就很好奇啊,就看一下这个接口是不是我想象中的那个。于是就去找我的接口,看一下是不是真的返回JSON(我还专门Debug了一下,看看是不是真请求到这个接口上了): 得出的结果是:我的接口的确是返回JSON数据,浏览器的reponse返回的的确是HTML格式。 于是,我就去找我前端的小伙伴,去问了一下这是怎么搞的。他回复我说:“在浏览...
- 下一篇
Spring cloud Feign不支持对象传参解决办法[完美解决]
Spring cloud Feign不支持对象传参解决办法[完美解决] spring cloud 使用 Feign 进行服务调用时,不支持对象参数。 通常解决方法是,要么把对象每一个参数平行展开,并使用 @RequestParam 标识出每一个参数,要么用 @RequestBody 将请求改为 body 传参,虽然这样解决了问题,但是这样限制了传参方式,并且使代码变得很繁重。 以下为完美解决 Feign 对象传参问题的办法。 引入如下依赖(可以在maven仓库中搜索 strongfeign) 复制代码1 2 3 com.moonciki.strongfeign4 feign-httpclient5 10.2.36 复制代码该源码修改自 https://github.com/OpenFeign/feign,提交过pr,但是项目原作者并没有采纳,pr地址如下:https://github.com/OpenFeign/feign/pull/949 之后为了同步到了maven 仓库,做了相应删减及pom的变更,具体改动可参考github。地址:https://github.com/cdmama...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果