1.Spring常见面试题

发布时间 2023-11-23 11:36:39作者: 求知律己

1.IOC

1.1 IOC概述

  IOC(Inversion of Controller:控制反转)的思想将原本在程序中手动创建对象的控制权,交给 Spring 框架管理

为什么叫控制反转?

  • 控制对象创建(实例化、管理)的权利
  • 反转:控制权交给外部环境(Spring框架、IOC容器);

  在 Spring 中, IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个 Map(key,value),Map 中存放的是各种对象

1.2 Spring Bean是什么 

  Bean 代指的就是那些被 IoC 容器所管理的对象。我们需要告诉 IoC 容器帮助我们管理哪些对象,这个是通过配置元数据来定义的。配置元数据可以是 XML 文件注解或者 Java 配置类

1.3 将类声明为Bean的注解

  • @Component:通用的注解,可标注任意类为 Spring 组件。如果一个 Bean 不知道属于哪个层,可以使用@Component 注解标注
  • @Repository : 对应持久层即 Dao 层,主要用于数据库相关操作
  • @Service : 对应服务层,主要涉及一些复杂的逻辑,需要用到 Dao 层。
  • @Controller : 对应 Spring MVC 控制层,主要用于接受用户请求并调用 Service 层返回数据给前端页面

1.5 @Autowired注解和@Resource注解的区别

  1. @Autowired注解是Spring提供的注解,@Resource是JDK提供的注解
  2. @Autowired默认通过类型注入Bean,@Resource默认根据Bean名称注入Bean
  3. 当接口存在多个实现类时,@Autowired和@Resource都需要通过Bean名称来注入Bean。@Autowaired可配合@Qualifier注解显示指定Bean名称,@Resource通过name属性显示指定Bean名称
  4. @Autowired支持构造函数方法字段参数上使用,@Resource主要用于字段和方法上的注入,不支持在构造函数和参数上使用;

 1.6 Bean的作用域

 

1.7 Bean的线程安全码

 

1.8 Bean的声明周期

参考链接

Spring常见面试题总结 | JavaGuide(Java面试 + 学习指南)