Spring常见面试题

2023-02-24 15:12:21 浏览数 (1)

一、简要的谈一谈Spring框架有哪些优点(至少写出三点)。

1.方便解耦,简化开发:

Spring就像是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理(代码没有入侵性)

2.AOP编程的支持:

Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能(便于功能扩展)

3.声明式事务的支持:

只需要通过配置就可以完成对事务的管理,而无需手动编程

4.方便集成各种优秀框架:

Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、MyBatis等)的直接支持

5.降低JavaEE API的使用难度:

Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

二、IOC和DI分别是什么?

IOC:控制反转是对组件中对象控制权的转移,把传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象组件的装配和管理。

DI:Spring通过IOC的技术促进了松耦合。当应用了IOC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象,容器在对象初始化时就会主动将依赖传递给它。

三、@Component 和 @Bean 的区别是什么?

作用对象不同: @Component 注解作用于类,@Bean注解作用于方法。

@Component通常是通过类路径扫描来自动侦测以及自动装配到Spring容器中。

@Bean 注解通常是我们在标有该注解的方法中定义产生这个bean,@Bean告诉了Spring这是某个类的实例。

@Bean 注解比 Component 注解的自定义性更强。

四、将一个类声明为IoC管理的bean的注解有哪些?

@Component :通用的注解,可标注任意类为 Spring 组件。

@Repository: 对应持久层即 Dao 层,主要用于数据库相关操作。

@Service : 对应服务层,主要涉及一些复杂的逻辑。

@Controller : 对应控制层,主要用于接受请求并调用Service层返回数据。

五、SpringMVC常用的注解有哪些(至少写出三点)?

1.@RequestMapping:用于处理请求 url 映射的注解,可用于类或方法上。

2.@RequestBody:注解实现接收请求中的json数据,将json转换为java对象。

3.@ResponseBody:注解实现将conreoller方法返回的java对象转化为json对象进行响应。

  • SpringMVC的流程

浏览器、DispatcherServlet前端控制器、HandlerMapping处理器映射器、HandlderAdapter处理器适配器、Handler处理器(Controller)、ViewResolver视图解析器、View

  1. HTTP请求
  2. 请求查找Handler
  3. 返回一个执行链
  4. 请求适配器
  5. 执行Handler
  6. 返回ModelAndView
  7. 返回ModelAndView
  8. 请求到视图解析器
  9. 返回View
  10. 视图渲染
  11. HTTP响应

0 人点赞