Spring 面试题, Spring 和 Spring MVC 的关系是什么?
Spring 面试题, Spring 和 Spring MVC 的关系是什么?
QA
Step 1
Q:: Spring 和 Spring MVC 的关系是什么?
A:: Spring 是一个全面的 Java 企业级应用框架,而 Spring MVC 是 Spring 框架的一个模块,专门用于构建基于 Web 的应用程序。Spring 提供了核心的容器功能,如依赖注入 (DI) 和面向切面编程 (AOP),而 Spring MVC 则构建在这些核心功能之上,用于简化 Web 应用程序的开发。Spring MVC 使用了控制器 (Controller)、模型 (Model) 和视图 (View)
的设计模式,帮助开发者更好地组织代码。
Step 2
Q:: Spring MVC 的核心组件有哪些?
A:: Spring MVC 的核心组件包括:1. DispatcherServlet:前端控制器,用于分发请求。2. HandlerMapping:用于确定哪个处理器(Controller)来处理请求。3. Controller:处理请求并返回模型数据。4. ViewResolver:根据逻辑视图名称解析实际视图。5.
ModelAndView:用于封装模型数据和视图名称。
Step 3
Q:: Spring MVC 如何处理表单提交?
A:: Spring MVC 通过 @ModelAttribute 或 @RequestParam 注解来绑定表单数据到模型对象。表单提交的请求首先由 DispatcherServlet 拦截,然后由 HandlerMapping 将请求分配给适当的控制器方法。控制器方法通过 @ModelAttribute 或 @
RequestParam 获取表单数据,处理后将数据传递给视图进行渲染。
Step 4
Q:: 如何在 Spring 中配置和使用依赖注入?
A:: 在 Spring 中,可以通过 XML 配置文件、注解或 Java 配置类来配置依赖注入。使用 @Autowired 注解可以自动注入依赖,或者通过 @Bean 注解在 Java 配置类中显式声明 Bean 及其依赖关系。在 XML 配置文件中,可以使用 <bean> 元素和 <property>
元素来配置 Bean 和它们的依赖。
Step 5
Q:: Spring AOP 的主要用途是什么?
A:: Spring AOP(面向切面编程)主要用于分离应用程序的横切关注点(如日志记录、事务管理、性能监控)。通过使用 AOP,可以将这些关注点从业务逻辑中分离出来,从而使代码更简洁、可维护。Spring AOP 提供了对方法拦截的支持,使开发者可以在方法执行前后或抛出异常时执行特定的逻辑。