什么是 spring?使用 Spring 框架的好处是什么?Spring 由哪些模块组成?核心容器(应用上下文) 模块。BeanFactory – BeanFactory 实现举例。XMLBeanFactory解释 AOP 模块解释 JDBC 抽象和 DAO 模块。解释对象/关系映射集成模块。解释 WEB 模块。Spring 配置文件什么是 Spring IOC 容器?IOC 的优点是什么?ApplicationContext 通常的实现是什么?Bean 工厂和 Application contexts 有什么区别?一个 Spring 的应用看起来象什么?什么是 Spring 的依赖注入?有哪些不同类型的 IOC(依赖注入)方式?哪种依赖注入方式你建议使用,构造器注入,还是 Setter 方法注入?什么是 Spring beans?一个 Spring Bean 定义 包含什么?你怎样定义类的作用域?解释 Spring 支持的几种 bean 的作用域。Spring 框架中的单例 bean 是线程安全的吗?解释 Spring 框架中 bean 的生命周期。哪些是重要的 bean 生命周期方法?什么是 Spring 的内部 bean?在 Spring 中如何注入一个 java 集合?什么是 bean 装配?什么是 bean 的自动装配?解释不同方式的自动装配 。自动装配有哪些局限性 ?你可以在 Spring 中注入一个 null 和一个空字符串吗?什么是基于 Java 的 Spring 注解配置?什么是基于注解的容器配置?怎样开启注解装配?@Required 注解@Autowired 注解@Qualifier 注解在 Spring 框架中如何更有效地使用 JDBC?JdbcTemplateSpring 对 DAO 的支持使用 Spring 通过什么方式访问 Hibernate?Spring 支持的 ORM如何通过 HibernateDaoSupport 将 Spring 和 Hibernate 结合起来?Spring 支持的事务管理类型Spring 框架的事务管理有哪些优点?你更倾向用那种事务管理类型?解释 AOPAspect 切面在 Spring AOP 中,关注点和横切关注的区别是什 么?连接点通知切点什么是引入?什么是目标对象?什么是代理?有几种不同类型的自动代理?什么是织入。什么是织入应用的不同点?解释基于 XML Schema 方式的切面实现。解释基于注解的切面实现什么是 Spring 的 MVC 框架?DispatcherServletWebApplicationContext什么是 Spring MVC 框架的控制器?@Controller 注解@RequestMapping 注解
部分参考答案
1. 什么是 spring?
Spring 是个 java 企业级应用的开源开发框架。Spring 主要用来开发 Java 应用,但是有些扩展是针对构建 J2EE 平台的 web 应用。Spring 框架目标是简化 Java 企业级应用开发,并通过 POJO 为基础的编程模型促进 良好的编程习惯。
2. 使用 Spring 框架的好处是什么?
轻量:Spring 是轻量的,基本的版本大约 2MB。控制反转:Spring 通过控制反转实现了松散耦合,对象 们给出它们的依赖,而不是创建或查找依赖的对象们。面向切面的编程(AOP):Spring 支持面向切面的编程, 并且把应用业务逻辑和系统服务分开。容器:Spring 包含并管理应用中对象的生命周期和配 置。MVC 框架:Spring 的 WEB 框架是个精心设计的框架, 是 Web 框架的一个很好的替代品。事务管理:Spring 提供一个持续的事务管理接口,可以 扩展到上至本地事务下至全局事务(JTA)。异常处理:Spring 提供方便的 API 把具体技术相关的异 常(比如由 JDBC,Hibernate or JDO 抛出的)转化为 一致的 unchecked 异常。
什么是 Spring 框架?Spring 框架有哪些主要模块?使用 Spring 框架能带来哪些好处?什么是控制反转(IOC)?什么是依赖注入?请解释下 Spring 框架中的 IoC?BeanFactory 和 ApplicationContext 有什么区别?Spring 有几种配置方式?如何用基于 XML 配置的方式配置 Spring?如何用基于 Java 配置的方式配置 Spring?怎样用注解的方式配置 Spring?请解释 Spring Bean 的生命周期?Spring Bean 的作用域之间有什么区别?什么是 Spring inner beans?Spring 框架中的单例 Beans 是线程安全的么?请举例说明如何在 Spring 中注入一个 Java Collection?如何向 Spring Bean 中注入一个 Java.util.Properties?请解释 Spring Bean 的自动装配?请解释自动装配模式的区别?如何开启基于注解的自动装配?请举例解释@Required 注解?请举例解释@Autowired 注解?请举例说明@Qualifier 注解?构造方法注入和设值注入有什么区别?Spring 框架中有哪些不同类型的事件?FileSystemResource 和 ClassPathResource 有何区别?Spring 框架中都用到了哪些设计模式?
部分参考答案
1. 什么是 Spring 框架?Spring 框架有哪些主要模块?
Spring 框架是一个为 Java 应用程序的开发提供了综合、广泛的基础性支持的 Java 平台。Spring 帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring 框架本身亦是按照设计模式精心打造,这使得我们可以在开发环境中安心的集成 Spring 框架,不必担心 Spring 是如何在后台进行工作的。
2. Spring 有几种配置方式?
将 Spring 配置到应用开发中有以下三种方式:
基于 XML 的配置基于注解的配置基于 Java 的配置
3. 请解释 Spring Bean 的自动装配?
在 Spring 框架中,在配置文件中设定 bean 的依赖关系是一个很好的机制,Spring 容器还可以自动装配合作关系 bean 之间的关联关系。这意味着 Spring 可以通过向 Bean Factory 中注入的方式自动搞定 bean 之间的依赖关系。自动装配可以设置在每个 bean 上,也可以设定在特定的 bean 上。
什么是 Spring Boot?Spring Boot 有哪些优点?什么是 JavaConfig?如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot 中的监视器是什么?如何在 Spring Boot 中禁用 Actuator 端点安全性?如何在自定义端口上运行 Spring Boot 应用程序?什么是 YAML?如何实现 Spring Boot 应用程序的安全性?如何集成 Spring Boot 和 ActiveMQ?如何使用 Spring Boot 实现分页和排序?什么是 Swagger?你用 Spring Boot 实现了它吗?什么是 Spring Profiles?什么是 Spring Batch?什么是 FreeMarker 模板?如何使用 Spring Boot 实现异常处理?您使用了哪些 starter maven 依赖项?什么是 CSRF 攻击?什么是 WebSockets?什么是 AOP?什么是 Apache Kafka?我们如何监视所有 Spring Boot 微服务?
部分参考答案
1. 什么是 Spring Boot?
多年来,随着新功能的增加,spring 变得越来越复杂。只需访问 https://spring.io/projects 页面,我们就会看到可以在我们的应用程序中使用的所有 Spring 项目的不同功能。如果必 须启动一个新的 Spring 项目,我们必须添加构建路径或添加 Maven 依赖关系,配置应用程 序服务器,添加 spring 配置。因此,开始一个新的 spring 项目需要很多努力,因为我们现 在必须从头开始做所有事情。
Spring Boot 是解决这个问题的方法。Spring Boot 已经建立在现有 spring 框架之上。使用 spring 启动,我们避免了之前我们必须做的所有样板代码和配置。因此,Spring Boot 可以 帮助我们以最少的工作量,更加健壮地使用现有的 Spring 功能。
2. Spring Boot 中的监视器是什么?
Spring boot actuator 是 spring 启动框架中的重要功能之一。Spring boot 监视器可帮助您访 问生产环境中正在运行的应用程序的当前状态。有几个指标必须在生产环境中进行检查和 监控。即使一些外部应用程序可能正在使用这些服务来向相关人员触发警报消息。监视器 模块公开了一组可直接作为 HTTP URL 访问的 REST 端点来检查状态。