这是我参与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)
- 视图负责应用的展示
- 模型封装了应用的数据和业务逻辑
- 控制器负责接收用户的输入 简单的请求流程
- 我们通过URI的方式告诉控制器执行相对应的action
- 控制器会解析URI并且调用相应的action
- 将模型队形放到视图可以访问的区域(通俗理解展示数据在浏览器上)
- 控制器利用RequestDispatcher/HttpServlet的方式跳转到视图
springMVC中的常见属性/注解
RequestMapping
- 此注解用来映射一个请求和一种方法,如果一个方法使用了此注解,那么就成为了一个请求处理方法
- 并且由调度程序在接收到相应的URL请求是调用
- 在其注解括号中也可标明是post/get请求
- @RequestParam - 用来获取请求参数值
- param - 用于获取请求参数值
- applicationScope - 用于获取应用程序范围级变量的值