浅谈「MVC」🍄

869 阅读2分钟

这是我参与8月更文挑战的第27天,活动详情查看:8月更文挑战

回顾依赖注入

  • 例如有两个组件A和B,A依赖B,假设A是一个类,并且A有一个方法是Hello用到了B
public class A {
    public void Hello() {
        B b = ....; // 得到一个B的实例
        b.say();
    }
}
  • 如果要使用B,呢么A必须先获取到B的实例引用,如果B是一个类还好说,只需要new就可以创建B的实例
  • 如果B是一个接口,并且有很多个实现,那么A的可重用性就大大降低了

依赖注入的做法

  • 依赖注入是,接管了对象的创建,(回想一下我们上一节的代理类)
    • 我们可以使用set方法或者其他的构建方法进行注入
    • 来看代码
public class A {
    public void Hello() {
      // 此刻我们不需要一个B的实例
        b.say();
    }
    public void setB(B b) {
        this.b = b;
    }
}
  • 已上代码,新增了set方法,当被框架调用的时候,用来注入B的一个实例,这样就不用依赖A的Hello方法调用b的say()方法之前去创建B的实例了

MVC

  • 模型-视图-控制器(MVC)
    • 视图负责应用的展示
    • 模型封装了应用的数据和业务逻辑
    • 控制器负责接收用户的输入 简单的请求流程
  1. 我们通过URI的方式告诉控制器执行相对应的action
  2. 控制器会解析URI并且调用相应的action
  3. 将模型队形放到视图可以访问的区域(通俗理解展示数据在浏览器上)
  4. 控制器利用RequestDispatcher/HttpServlet的方式跳转到视图

springMVC中的常见属性/注解

RequestMapping

  • 此注解用来映射一个请求和一种方法,如果一个方法使用了此注解,那么就成为了一个请求处理方法
    • 并且由调度程序在接收到相应的URL请求是调用
    • 在其注解括号中也可标明是post/get请求
  • @RequestParam - 用来获取请求参数值
  • param - 用于获取请求参数值
  • applicationScope - 用于获取应用程序范围级变量的值