SSM篇

一.什么是spring?

  1. 是一个轻量级的开源框架,是为了解决企业开发的复杂型而创建的;
  2. 通俗的讲spring就是为了创建对象,在spring框架中的核心就是IOC(控制反转,也就是xml依赖),AOP(面向切面编程,感觉跟动态代理差不多,添加功能但是不修改原有的代码)
  3. 主要是不创建对象,但是描述创建它们的方式,在代码中不直接与对象和服务连接,但在配文件中描述哪一组件需要哪一个服务;

二. 什么是spring的依赖注入?

依赖注入是IOC的一个方面,是一个通常的概念,这个概念是你不用创建对象,而是描述他是怎样被创建的即可。不用在代码里直接组装你的组件和服务,但是需要在配置文件里描述什么样的组件需要服务,之后IOC容器就会负责组装他们。

三.什么是mvc?

Mvc是一种开发模式可以分为三层:

controller层:称为控制层,它不会执行逻辑,应用程序中处理用户交互部分。

Model层:称为业务层,负责处理应用程序中的逻辑问题,一般有效代码在model层完成。

View层:视图层,应用程序中负责展示数据的部分。

四.什么是spring mvc?

首先是一个MVC框架,在Web模型中,MVC是一种很流行的框架,通过把Model,View,Controller分离,把较为复杂的web应用分成逻辑清晰的几部分,是为了简化开发,减少出错。还是为了组内开发人员之间的配合。总之就是一种分层工作的办法。

在者是spring的一个子框架,也拥有spring的特性,比如是依赖注入。

五.Spring mvc的流程?

  1. 发起请求到前端控制器(DispatcherServlet)
  2. 前端控制器请求HandleMapping(处理器映射器,可以通过xml和注解进行查找)
  3. 处理器映射器向前端控制器返回一个handler对象
  4. 前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)执行Handler
  5. 处理器适配器执行handler
  6. Handler执行完成之后给处理器适配器返回一个modelandview对象
  7. 处理器适配器向前端控制器返回一个modelandview对象
  8. 前端控制器请求视图解析器解析视图
  9. 视图解析器向前端控制器返回一个真正的视图(jsp)
  10. 前端控制器进行视图渲染,填充到request域中
  11. 前端控制器向用户展示

六.需要的组件?

组件:

1、前端控制器 DispatcherServlet(不需要程序员开发)

  作用:接收请求、响应结果 相当于转发器

  有了DispatcherServlet 就减少了其它组件之间的耦合度

2、处理器映射器HandlerMapping(不需要程序员开发)

  作用:根据请求的URL来查找Handler

3、处理器适配器HandlerAdapter

  作用:按照特定的规则(HandlerAdapter要求的规则)去执行Handler

  注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler

4、处理器Handler(需要程序员开发)

5、视图解析器 View Resolver(不需要程序员开发)

  作用:进行视图的解析 根据视图逻辑名解析成真正的视图(view)

6、视图View(需要程序员开发jsp)

View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf。。。)

七.什么是Spring beans?

Spring beans 是那些形成Spring应用的主干的java对象。它们被Spring IOC容器初始化,装配,和管理。这些beans通过容器中配置的元数据创建。比如,以XML文件中<bean/> 的形式定义。

八.什么是基于Java的Spring注解配置? 给一些注解的例子.

基于Java的配置,允许你在少量的Java注解的帮助下,进行你的大部分Spring配置而非通过XML文件。

以@Configuration 注解为例,它用来标记类可以当做一个bean的定义,被Spring IOC容器使用。另一个例子是@Bean注解,它表示此方法将要返回一个对象,作为一个bean注册进Spring应用上下文。

九.@Required 注解

这个注解表明bean的属性必须在配置的时候设置,通过一个bean定义的显式的属性值或通过自动装配,若@Required注解的bean属性未被设置,容器将抛出BeanInitializationException。

十.@Autowired 注解

@Autowired 注解提供了更细粒度的控制,包括在何处以及如何完成自动装配。它的用法和@Required一样,修饰setter方法、构造器、属性或者具有任意名称和/或多个参数的PN方法。