学静思语
Published on 2025-03-15 / 14 Visits
0
0

Spring Framework 面试题集锦

Spring Framework 面试题精选

1. Spring框架的核心特性是什么?

Spring框架的核心特性包括:

  • IoC (控制反转): 将对象的创建和依赖关系的维护交给Spring容器
  • DI (依赖注入): 通过构造函数、setter方法或注解注入依赖
  • AOP (面向切面编程): 实现横切关注点的模块化
  • 事务管理: 提供声明式事务和编程式事务支持
  • MVC框架: 用于开发Web应用的MVC框架
  • 异常处理: 提供统一的异常处理机制

2. 什么是IoC容器?

IoC容器是Spring框架的核心,主要有两个实现:

  • BeanFactory: Spring框架的基础设施,面向Spring本身
  • ApplicationContext: BeanFactory的子接口,提供更多企业级功能

IoC容器的主要职责:

  • 管理Bean的生命周期
  • 维护Bean之间的依赖关系
  • 配置Bean的属性
  • 实例化Bean

3. Spring Bean的作用域有哪些?

Spring支持以下几种bean作用域:

  • singleton: 默认作用域,每个容器中只有一个bean实例
  • prototype: 每次请求都会创建新的bean实例
  • request: 每个HTTP请求都会创建一个新的bean实例
  • session: 每个HTTP会话都会创建一个新的bean实例
  • global-session: 全局session作用域,应用在Portlet环境

4. Spring中的依赖注入方式有哪些?

主要的依赖注入方式:

  1. 构造函数注入

    @Autowired
    public UserService(UserRepository repository) {
    this.repository = repository;
    }
    
  2. Setter方法注入

    @Autowired
    public void setRepository(UserRepository repository) {
    this.repository = repository;
    }
    
  3. 字段注入

    @Autowired
    private UserRepository repository;
    

5. Spring AOP的实现原理是什么?

Spring AOP的实现原理主要基于:

  • 动态代理:
  • JDK动态代理(基于接口)
  • CGLIB代理(基于类继承)

主要概念:

  • 切面(Aspect): 横切关注点的模块化
  • 连接点(JoinPoint): 程序执行过程中的某个特定点
  • 切点(Pointcut): 匹配连接点的表达式
  • 通知(Advice): 在切点处要执行的代码

6. Spring事务管理有哪些方式?

Spring提供两种事务管理方式:

  1. 声明式事务

    @Transactional
    public void transferMoney(Account from, Account to, BigDecimal amount) {
    // 转账逻辑
    }
    
  2. 编程式事务

    TransactionTemplate template = new TransactionTemplate();
    template.execute(new TransactionCallback<Object>() {
    public Object doInTransaction(TransactionStatus status) {
        // 事务操作
        return null;
    }
    });
    

7. Spring Boot的主要特性是什么?

Spring Boot的核心特性:

  • 自动配置: 根据依赖自动配置Spring应用
  • 起步依赖: 简化依赖管理
  • 嵌入式服务器: 内置Tomcat等服务器
  • Actuator: 提供运行时的应用监控
  • 外部化配置: 支持多环境配置

8. Spring MVC的工作流程是什么?

Spring MVC的核心组件和流程:

  1. DispatcherServlet: 前端控制器
  2. HandlerMapping: 处理器映射
  3. Controller: 处理器
  4. ModelAndView: 模型和视图
  5. ViewResolver: 视图解析器

工作流程:

请求 -> DispatcherServlet -> HandlerMapping -> Controller 
-> Service -> Controller -> ViewResolver -> 视图渲染 -> 响应

9. Spring中的设计模式有哪些?

Spring框架中使用的主要设计模式:

  • 工厂模式: BeanFactory, ApplicationContext
  • 单例模式: Bean默认作用域
  • 代理模式: AOP实现
  • 观察者模式: 事件机制
  • 模板方法: JdbcTemplate等
  • 适配器模式: Spring MVC中的适配器

10. Spring Bean的生命周期是怎样的?

Bean的主要生命周期阶段:

  1. 实例化Bean
  2. 设置属性值
  3. 调用BeanNameAware接口
  4. 调用BeanFactoryAware接口
  5. 调用ApplicationContextAware接口
  6. 调用BeanPostProcessor的预处理方法
  7. 调用InitializingBean接口
  8. 调用自定义的init方法
  9. 调用BeanPostProcessor的后处理方法
  10. Bean可以使用了
  11. 容器关闭时调用DisposableBean接口
  12. 调用自定义的destroy方法

面试技巧

回答Spring相关面试题时建议:

  1. 理解核心概念和原理
  2. 结合实际项目经验
  3. 准备具体的代码示例
  4. 关注Spring最新特性
  5. 理解各组件之间的关系
  6. 掌握常见问题的解决方案

Comment