自己动手写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 下载。
下一章文章,将会分析 swift-framework 框架的 ORM、AOP 的实现分析。
自己动手写Spring框架--AOP、ORM
自己动手写Spring框架--IOC、MVC的更多相关文章
- Spring框架IOC容器和AOP解析 非常 有用
Spring框架IOC容器和AOP解析 主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面 ...
- 手写Spring框架,加深对Spring工作机制的理解!
在我们的日常工作中,经常会用到Spring.Spring Boot.Spring Cloud.Struts.Mybatis.Hibernate等开源框架,有了这些框架的诞生,平时的开发工作量也是变得越 ...
- Spring框架和MVC原理
Spring框架和MVC原理 目录 Spring框架 SpringMVC工作原理 参考资料 回到顶部 Spring框架 Spring当前框架有20个jar包,大致可以分为6大模块: Core Cont ...
- 自己动手写web框架----1
本文可作为<<自己动手写struts–构建基于MVC的Web开发框架>>一书的读书笔记. 一个符合Model 2规范的web框架的架构图应该如下: Controller层的Se ...
- 自己动手写spring容器(3)
好久没有写博客了,今天闲下来将之前未完成的表达出来. 在之前的文章自己动手写spring容器(2)中完成了对spring的依赖注入的实现,这篇将会介绍spring基于注解的依赖注入的实现. 在一般的J ...
- (新)自己动手写ORM框架(1)-增删查改的使用
之前写过一个系列文章自己动手写ORM框架,经过在多个项目的中的使用,对这套代码进行了许多改进,下面是使用方法: 新增学员信息代码预览: DBHelper db = DBHelper.getInstan ...
- Spring框架IOC容器和AOP解析
主要分析点: 一.Spring开源框架的简介 二.Spring下IOC容器和DI(依赖注入Dependency injection) 三.Spring下面向切面编程(AOP)和事务管理配置 一.S ...
- [原]容器学习(一):动手模拟spring的IoC
介绍 学习经典框架的实现原理以及设计模式在其实际中的运用,是非常有必要的,可以让我们更好进行面向对象. 本篇文章就来模拟Spring的IOC功能,明白原理后,可以更好的使用它,进而为进行面向对象提供一 ...
- spring框架--IOC容器,依赖注入
思考: 1. 对象创建创建能否写死? 2. 对象创建细节 对象数量 action 多个 [维护成员变量] service 一个 [不需要维护公共变量] dao 一个 [不需要维护 ...
随机推荐
- Python机器学习经典实例电子版和附带源码
Python机器学习经典实例电子版和附带源码 下载:https://pan.baidu.com/s/1m6ODNJk--PWHW8Vdsdjs-g 提取码:nyc0 分享更多python数据分析相关电 ...
- 曹工说Tomcat4:利用 Digester 手撸一个轻量的 Spring IOC容器
一.前言 一共8个类,撸一个IOC容器.当然,我们是很轻量级的,但能够满足基本需求.想想典型的 Spring 项目,是不是就是各种Service/DAO/Controller,大家互相注入,就组装成了 ...
- python 查询 elasticsearch 常用方法(Query DSL)
1. 建立连接 from elasticsearch import Elasticsearch es = Elasticsearch(["localhost:9200"]) 2. ...
- java虚拟机-程序计数器PC Register
什么是程序计数器? 程序计数器是一块 较小 的内存空间,它可以看做是当前线程所执行的字节码的 行号指示器 :在虚拟机的概念模型里(仅仅是概念模型,各种虚拟机可能会通过一些更高效的方式去实现),字节码解 ...
- Python中字符串常见操作
(1)find 查找 格式:mystr.find(str, start, end) 例如: mystr.find(str, start=0, end=len(mystr)) 作用:检测str是否包含在 ...
- bzoj 3643Phi的反函数
3643: Phi的反函数 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 298 Solved: 192[Submit][Status][Discus ...
- tomcat配置https以及配置完成后提示服务器缺少中间证书(已解决)
#### tomcat配置https 准备工作 下载好证书文件,下载的时候可以选择为tomcat文件.我这下载下来是压缩包.解压后就是下图的样子. 以.key结尾的文件是证书的key 以.pem结尾的 ...
- Java编程思想:泛型方法
import java.util.*; public class Test { public static void main(String[] args) { // GenericMethods.t ...
- mybatis学习(五)(动态mybatis(多条件查询))
有时候要查询条件是多条件的,尤其是使用mybatis的时候如何创建sql语句呢? 这里mybatis有自己的办法,如下: 案例:通过传入map,根据map里面的数据来查询 mapper配置如下: &l ...
- [记录]python的简单协程框架(回调+时间循环+select)
# -*- coding: utf-8 -*- # @Time : 2018/12/15 18:55 # @File : coroutine.py #一个简单的 Coroutine 框架 import ...