SpringMVC理论

1、SpringMVC的工作原理

1、用户发送请求由前端控制器(DispatcherServlet)进行处理

 

2、前端控制器(DispatcherServlet)解析URL请求,调用处理器映射器(HandlerMapping),通过处理器适配器按照特定规则对处理器(Handler)进行执行。

3、处理器(HAndler)对数据完成处理以后返回一个ModelAndView对象给前端控制器

4、Handler处理后返回的ModelAndView只是一个逻辑视图,不是真正的视图,前端控制器(DispatcherServlet)通过视图解析器(ViewResolver)转换成真正的视图。

5、前端控制器根据View进行渲染视图(即将模式数据填充之视图中)返回给客户。

当发现有多种类型的Bean时,@Primary注解会通知IoC容器优先使用它所标注的Bean进行注入;@Quelifier注解可以与@AutoWired注解组合使用,达到通过类型和名称一起筛选Bean的效果。

public class ClassRoom {
   @Autowired
   @Qualifier("englishTeacher")
   public ITeacher teacher;
}
@Component
@Primary
public class MaopaoSort implements ISort {
    public String getName() {
        return "冒泡排序";
    }
}

 

@Component 和 它的子类型(@Controller, @Service and @Repository)注释在类上。告诉Spring,我是一个bean,通过类路径扫描自动检测并注入到Spring容器中。

@Bean不能注释在类上,只能用于在配置类中显式声明单个bean。意思就是,我要获取这个bean的时候,spring要按照这种方式去获取这个bean。默认情况下@Bean注释的方法名作为对象的名字,也可以用name属性定义对象的名字。

web开发,提供3个@Component注解衍生注解(功能一样)取代
@Repository(“名称”):dao层
@Service(“名称”):service层
@Controller(“名称”):web层

@Autowired:自动根据类型注入
@Qualifier(“名称”):指定自动注入的id名称

@Resource(“名称”)
@ PostConstruct 自定义初始化
@ PreDestroy 自定义销毁

@Resource注解和@Autowired注解类似,都用来声明需要自动装配的bean,区别在于@Autowired是类型驱动的注入,而@Resource是名称驱动的注入,所以前者存在多bean问题,而后者,只要保证bean命名唯一就不会出现多bean的问题。

posted @ 2022-03-29 00:16  起眠  阅读(31)  评论(0)    收藏  举报