手写SpringMvc

一、简介

空闲之余手撕一把springMVC,以加深对spring的理解,尽可能写的全面,源码中注释也会很详细。话不多说开搞!

二、项目搭建

在IDEA上用MAVEN创建一个webApp项目:
项目构建.png
原来的springMVC中,最重要的一个类就是DispatchServlet即前端请求控制器,我们自定义自己的DispatchServlet,继承HttpServlet。
因为要继承HttpServlet,利用pom引入servlet-api的jar包:

    **<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>3.0-alpha-1</version>
    </dependency>**

继承HttpServelet新建DispatchServlet类,重写doGet、doPost、和init方法。在init方法中实现包扫描、IOC容器初始化等一系列操作。这里面操作会在tomcat加载项目后初始化完成。
DispatchServlet.png
同时在web.xml配置DispatchServlet:

  <servlet>
    <servlet-name>DispatchServlet</servlet-name>
    <servlet-class>com.zjx.myspringmvc.servelet.DispatchServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
<servlet-mapping>
  <servlet-name>DispatchServlet</servlet-name>
  <url-pattern>/</url-pattern>
</servlet-mapping>

三、流程解读

3.1.自定义注解

常用的 @Controller、@Service、@RequestMapping、@RequestParam、@Qualifier等。我们对应定义自己的注解 @MyController、@MyService、@MyRequestMapping、@MyRequestParam、@MyQualifier
自定义注解首先了解四种元注解: @Retention @Target @Document @Inherited

@Retention:注解的保留位置         
@Retention(RetentionPolicy.SOURCE)//注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.CLASS)//默认的保留策略,注解会在class字节码文件中存在,但运行时无法获得

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值