zoukankan      html  css  js  c++  java
  • spring实现的基本思路

    spring实现的基本思路

    配置阶段

    • 配置web.xml
      • DispatchServlet
    • 设定init-param
      • 设置初始化参数的文件的加载路径contextconfigLoacation = classpath:application.xml
    • 设定url-pattern
      • /*
    • 配置Annotation
      • @Controller @Service @Autowried @RequestMapping...

    初始化阶段

    • 调用init()方法
      • 加载配置文件
    • IOC容器初始化
      • Map<String,Object>
    • 扫描相关的类
      • scan-package="com.demo"
    • 创建实例并保存到容器——IOC
      • 通过反射机制将类实例化放入容器中
    • 进行DI操作——DI
      • 扫描IOC容器中的实例,给没有赋值的属性自动赋值
    • 初始化HandlerMapping——MVC
      • 将一个Url和一个方法进行一对一的关联映射Map<String,Method>

    运行阶段

    • 调用doGet()/doPost()
      • Web容器调用doGet/doPost方法,获得request/response对象
    • 匹配HandlerMapping
      • 从request对象中获得用户输入的url,找到对应的Method
    • 反射调用method.invoker()
      • 利用反射调用方法并返回结果
    • response.getWrite().write()
      • 将返回结果输入到浏览器

    代码实现逻辑

    • 1、加载配置文件
    • 2、扫描相关的类
    • 3、初始化IOC容器,初始化扫描到的类,并且加入IOC容器中
    • 4、扫描加有注解的类,完成依赖注入
    • 5、初始化HandlerMapping,将url对应的Method注入容器
    • 6、执行service业务方法

    相关技巧

    • 将类名的首字母转小写方法
      • 先将类名转char数组
      • 再将第一个元素加32,也就是第一个字母,大小写字母的Ascii码相差32,大写字母Ascii码小于小写字母
  • 相关阅读:
    Java三大框架
    单例模式和工厂模式(百度文库)
    使用java代码编辑oracle数据库
    extends 与implements的区别和用法
    介绍MVC编程架构模式
    接口具体是什么东西
    Servlet和JSP的本质和区别
    用户注册,登录,留言系统
    页面跳转的五种方法
    cookie的长度和限制数量
  • 原文地址:https://www.cnblogs.com/erfsfj-dbc/p/11909356.html
Copyright © 2011-2022 走看看