面试 spring常见面试题

spring常见面试题

什么是 Spring 框架?

1
2
3
4
Spring是一款开源的轻量级Java应用程序开发框架。Spring最根本的使命是解决企业级应用开发的复杂性,即简化Java开发。

Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发,比如说 Spring 支持 IoC(Inverse of Control:控制反转) 和 AOP(Aspect-Oriented Programming:面向切面编程)、可以很方便地对数据库进行访问、可以很方便地集成第三方组件(电子邮件,任务,调度,缓存等等)、对单元测试支持比较好、支持 RESTful Java 应用程序的开发。

IOC(控制翻转)

1
控制翻转,也叫依赖注入,他就是不会直接创建对象,只是把对象声明出来,在代码 中不直接与对象和服务进行连接,但是在配置文件中描述了哪一项组件需要哪一项服 务,容器将他们组件起来。在一般的IOC场景中容器创建了所有的对象,并设置了必 要的属性将他们联系在一起,等到需要使用的时候才把他们声明出来,使用注解就跟 方便了,容器会自动根据注解把对象组合起来

AOP(面对切面编程)

1
2
面对切面编程,这是一种编程模式,他允许程序员通过自定义的横切点进行模块 化,将那些影响多个类的行为封装到课重用的模块中。
例子:比如日志输出,不使用AOP的话就需要把日志的输出语句放在所有类中,方法 中,但是有了AOP就可以把日志输出语句封装一个可重用模块,在以声明的方式将他 们放在类中,每次使用类就自动完成了日志输出。

Spring 5 的模块结构

image-20240417180055394

遇到的web开发注解

Servlet

1
2
3
4
@WebServlet(urlPatterns = "
xxx extends HttpServlet

@WebFilter(urlPatterns =

MVC

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16



@Controller

@GetMapping("

@PostMapping(

@RequestParam()

@PathVariable(

@RequestBody

@RequestMapping("/api")

Spring rest

1
2
3
@JsonIgnore

@JsonProperty(access = Access.WRITE_ONLY)