手写SpringMVC框架(二)-------结构开发设计
续接前文,
手写SpringMVC框架(一)项目搭建
本节我们来开始手写SpringMVC框架的第二阶段:结构开发设计。
新建一个空的springmvc.properties,
里面写我们要扫描的包名,之后这里面我们需要些一些配置信息,比如扫描的包路径等等。
scanPackage=com.lagou.edu
在web.xml中配置此文件:
<servlet>
<servlet-name>lgmvc</servlet-name>
<servlet-class>com.lagou.edu.mvcframework.servlet.LgDispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:springmvc.properties</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>lgmvc</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
servlet中真正处理的几个方法的建立:
package com.lagou.edu.mvcframework.servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
/**
* @author liuyj
* @Title: LgDispatcherServlet
* @create 2020-06-11 14:22
* @ProjectName springmvc-demo
* @Description: TODO
*/
public class LgDispatcherServlet extends HttpServlet {
@Override
public void init(ServletConfig config) throws ServletException {
//1.加载springmvc.properties
String contextConfigLocation = config.getInitParameter("contextConfigLocation");
doLoadConfig(contextConfigLocation);
//2.扫描相关的类,扫描注解
doScan();
//3.初始化bean(实现IOC容器,基于注解)
doInstance();
//4.实现依赖注入
doAutoWired();
//5.构造一个HandleMapping处理器映射器,将配置好的url和Method建立映射关系
initHandleMapping();
}
private void initHandleMapping() {
}
private void doAutoWired() {
}
private void doInstance() {
}
private void doScan() {
}
//加载配置文件
private void doLoadConfig(String contextConfigLocation) {
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//真正处理请求
}
}
本节到此结束。
下一节我们来开始具体方法的实现。
欢迎访问:
微信公众号(程序员资料站):code_data
手写SpringMVC框架(二)-------结构开发设计的更多相关文章
- (二)springMvc原理和手写springMvc框架
我们从两个方面了解springmvc执行原理,首先我们去熟悉springmvc执行的过程,然后知道原理后通过手写springmvc去深入了解代码中执行过程. (一)SpringMVC流程图 (二)Sp ...
- 手写SpringMVC框架(三)-------具体方法的实现
续接前文 手写SpringMVC框架(二)结构开发设计 本节我们来开始具体方法的代码实现. doLoadConfig()方法的开发 思路:我们需要将contextConfigLocation路径读取过 ...
- 手写SpringMVC 框架
手写SpringMVC框架 细嗅蔷薇 心有猛虎 背景:Spring 想必大家都听说过,可能现在更多流行的是Spring Boot 和Spring Cloud 框架:但是SpringMVC 作为一款实现 ...
- 手写SpringMVC框架(一)-------项目搭建
SpringMVC处理请求的大致流程: 我们来开始着手手写一个SpringMVC框架. 新建一个springMVC项目,流程参见 SpringMVC框架搭建流程 引入servlet相关的jar包: & ...
- 二. 手写SpringMVC框架
1.1 新建DispatcherServlet 1.2 在src目录下,新建applicationContext.xml <?xml version="1.0" encodi ...
- 纯手写SpringMVC框架,用注解实现springmvc过程
闲话不多说,直接上代码! 1.第一步,首先搭建如下架构,其中,annotation中放置自己编写的注解,主要包括service controller qualifier RequestMapping ...
- 五,手写SpringMVC框架,过滤器的使用
8. 过滤器 8.1 编写字符过滤器 CharacterEncodingFilter 复制项目mymvc4,新建项目mymvc5 package com.hy.filter; import java. ...
- 深度解析SpringMvc实现原理手写SpringMvc框架
http://www.toutiao.com/a6340568603607171329/?tt_from=mobile_qq&utm_campaign=client_share&app ...
- 《四 spring源码》手写springmvc
手写SpringMVC思路 1.web.xml加载 为了读取web.xml中的配置,我们用到ServletConfig这个类,它代表当前Servlet在web.xml中的配置信息.通过web.xml ...
随机推荐
- 第九届蓝桥杯JavaA组省赛真题
解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论 题目1.分数 题目描述 1/1 + 1/2 + 1/4 + 1/8 + 1/16 + - 每项是前一项的一半,如果一共有20项, 求这个和是多 ...
- java实现国庆星期日
** 国庆星期日** 1949年的国庆节(10月1日)是星期六. 今年(2012)的国庆节是星期一. 那么,从建国到现在,有几次国庆节正好是星期日呢? 只要答案,不限手段! 可以用windows日历, ...
- java实现第三届蓝桥杯数量周期
数量周期 [结果填空](满分9分) 复杂现象背后的推动力,可能是极其简单的原理.科学的目标之一就是发现纷繁复杂的自然现象背后的简单法则.爱因斯坦的相对论是这方面的典范例证. 很早的时候,生物学家观察某 ...
- 使用Aspose.word (Java) 填充word文档数据(包含图片填充)
Aspose填充word数据 本文介绍了如何使用aspose进行word文档的生成,并提供了工具类供参考. 有问题欢迎 call 微信:905369866,小弟尽力而为..毕竟这玩意没吃透. 目录 A ...
- 你真的了解EF吗?关于EntityFramework的高级优化
接上一篇文章.现在写程序,做项目不是说功能做完就完事了,在平常的开发过程中对于性能的考虑也是极其重要的. 关于ef的那些事,今天就来说说吧.首先必须得知道.net ef在程序中的五种状态变化过程与原理 ...
- C# ASP.NET递归循环生成嵌套json结构树
1. 建立用来保存树结构数据的目标对象 public class TreeObject { public string name { get; set; } public string value { ...
- Centos7上添加自定义服务文件并开机启动
Ⅰ-1 写服务文件 [Unit] ##服务的说明Description:描述服务After:描述服务类别 [Service] ##服务运行参数的设置Type=forking是后台运行的形式Ex ...
- Kubernetes-subpath的使用
一.什么是subpath 为了支持单一个pod多次使用同一个volume而设计,subpath翻译过来是子路径的意思,如果是数据卷挂载在容器,指的是存储卷目录的子路径,如果是配置项configMap/ ...
- RFID-RC522 模块的读写操作【Arduino】
接线 Arduino Uno <-> RFID-RC52210 <-> SDA13 <-> SCK11 <-> MOSI12 <-> MIS ...
- Linux切换超级管理员root用户
Ubuntu用$标志表示你现在处于普通用户,#表示超级用户. 普通用户会有限制,想从普通变成超级用户,可以输入 su 或 su - 命令,要求你输入密码, 你如记得密码就可以直接输入,再Enter即可 ...