SpringMVC

2020-06-09  本文已影响0人  一直想上树的猪

一、Spring IOC容器原理

ioc容器是什么

Map iocMap = new HashMap();
OrderService orderService = new OrderService();
iocMap.put("orderService", orderService);

ioc容器是一个很大的map对象,是单例的,只有一个map,map中放了很多java的bean对象

ioc容器如何使用?

    @Autowired
    private OrderService orderService;
    // 直接从iocMap.get("orderService")

二、Tomcat

Tomcat启动时加载Springmvc的流程

image.png

Tomcat启动成功之后

核心:DispatcherServlet

三、手写Springmvc

springmvc.png

1、自定义注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Controller {
    String value() default "";
}
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestMapping {
    String value() default "";
}
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {
    boolean required() default true;
}
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestParam {
    String value() default "";
}

2、自定义DispatcherServlet,继承HttpServlet

里面有连个成员变量(map)

3、处理请求

处理请求时,根据路由,从handlermapping中找到对应的方法,进行处理,然后返回对应的结果

上一篇下一篇

猜你喜欢

热点阅读