spring面试常遇见的问题(01)

1、什么是SPRING框架?

Spring框架是一个开源的Java应用程序框架,它被广泛用于构建企业级Java应用程序。它提供了一种轻量级的编程模型,通过依赖注入和面向切面编程等技术,使得开发者可以更加方便地开发可扩展、模块化和松耦合的应用程序。Spring框架的主要优势之一是分层架构,这允许使用者选择使用哪一个组件,同时为J2EE应用程序开发提供继承的框架。

2、SPRING框架的三大核心特性是什么?

Spring框架的三大核心特性是:

1、控制反转(Inversion of Control,IOC)和依赖注入(Dependency Injection,DI):这是Spring框架的核心特性之一。在传统的Java开发过程中,我们需要自己创建和管理对象。但在Spring框架中,对象的创建和管理由Spring容器负责,我们只需要声明所依赖的对象,Spring容器会自动为我们注入所需的依赖。这降低了代码的耦合度和提高了可维护性。

2、面向切面编程(Aspect-Oriented Programming,AOP):这是Spring框架的另一个核心特性。面向切面编程是一种编程技术,它允许开发者在应用程序中定义横切关注点,例如日志记录、事务管理、安全性等。通过AOP,我们可以将这些横切关注点与核心业务逻辑分离,使得代码更加清晰、易于理解和维护。

3、轻量级和可扩展性:Spring框架的设计哲学是"约定优于配置",这意味着它尽量减少对开发者的约束,并提供灵活的扩展性。Spring框架可以与其他流行的Java框架(如Struts、Hibernate等)无缝集成,同时也可以轻松地扩展到Web服务、移动应用等其他领域。

3、什么是IOC?什么是DI?

IOC是Inversion Of Control的缩写,中文翻译为"控制反转",是一种面向对象编程的设计思想。它的主要作用是将对象的创建、配置和管理交给容器来完成,而不是由程序员手动完成。这样可以降低代码之间的耦合度,提高代码的可维护性和可扩展性 。

DI是Dependency Injection的缩写,中文翻译为"依赖注入"。它是IOC的一种实现方式。在DI中,对象之间的依赖关系由容器在运行期间决定,即由容器动态地将依赖注入到对象当中。通过依赖注入机制,我们有时候只需要简单地配置,无需修改代码即可完成自身逻辑,而不必去关心依赖的具体资源 。

4、什么是AOP?在SPRING框架中,AOP的主要目的是什么?

AOP,全称Aspect Oriented Programming,是一种面向切面的编程范式,它通过分离横切关注点,提高了模块化。在Spring框架中,AOP的主要目的是在不修改源代码的前提下,为系统中的业务组件添加某种通用功能。

AOP可以将其分为两类:静态AOP实现和动态AOP实现。

静态AOP实现是在编译阶段对程序源代码进行修改,生成了静态的AOP代理类。动态AOP实现是在运行阶段对程序源代码进行修改,达到增强功能的目的。在Spring框架中,AOP的主要应用场景有:

1、日志记录:通过AOP可以方便地记录日志,无需修改业务逻辑代码。

2、事务管理:通过AOP可以方便地管理事务,无需修改业务逻辑代码。

3、接口权限验证:通过AOP可以方便地进行接口权限验证,无需修改业务逻辑代码。

4、性能监测:通过AOP可以方便地监测系统性能,无需修改业务逻辑代码。

总之,在Spring框架中,AOP的主要目的是在不修改源代码的前提下,为系统中的业务组件添加某种通用功能,从而提高了程序的模块化、可读性和可维护性。

5、SPRING框架的核心模块有哪些?

SPRING框架的核心模块包括以下这些:

1、Spring Core:提供核心容器,通过使用控制反转(IoC)模式来组织和管理Java应用中的各个组件及其关系。

2、Spring AOP:提供面向切面编程(AOP)的功能,将事务管理集成到应用程序中。

3、Spring Context:核心配置文件,为spring框架提供上下文信息。

4、Spring Dao:为spring框架提供数据库操作模块,包括对传统jdbc的支持。

5、Spring ORM:集成了各种ORM框架的模块,实现对对象和表的映射关系。

6、Spring Web:集成各种优秀的web层框架,如struts2,springMVC等。

7、Spring WebMvc:提供web层框架,为应用程序提供web功能支持。

6、SPRING框架如何进行依赖注入的?

SPRING框架通过以下步骤进行依赖注入:

1、定义bean:在SPRING配置文件中定义需要注入的bean,包括bean的id、class等属性。

2、创建bean实例:在SPRING容器初始化时,根据配置文件创建bean实例。

3、配置依赖关系:在配置文件中,使用元素或使用元素来配置bean之间的依赖关系。

4、实现依赖注入:通过setter方法或构造函数,将依赖对象注入到相应的bean中。

总的来说,SPRING框架通过配置文件和注解两种方式来定义和实现依赖注入,使得应用程序中的组件之间的关系变得更加清晰、易于管理和维护。

7、什么是Spring bean?bean的作用域有哪些?

在Spring框架中,bean是由Spring IoC容器所管理的对象。简单来说,bean就是由IoC容器初始化、装配及管理的对象,除此之外,bean与应用程序中的其他对象没有什么区别。关于bean的作用域,有以下几种类型:

1、singleton:这是默认的作用域,单例模式,在Spring IoC容器中仅存在一个bean,在容器初始化时创建,后续直接使用,不再创建新的实例。

2、prototype:多例模式,每次调用getBean方法时,IoC容器才会创建该对象的实体,并且每次创建都是不同的对象。

3、request:在HTTP请求bean范围内会对每一个来自客户端的网络请求创建一个实例,在请求完成后,bean会失效并被垃圾回收器回收。

4、session:确保每个HTTP session请求范围有一个bean的实例,同一个session共享同一个bean,不同session的bean也不同。在session过期后,bean会自动失效。

5、global-session:全局共享一个bean,仅用于WebApplicationContext环境。

相关推荐
敲代码娶不了六花1 小时前
jsp | servlet | spring forEach读取不了对象List
java·spring·servlet·tomcat·list·jsp
Yhame.1 小时前
深入理解 Java 中的 ArrayList 和 List:泛型与动态数组
java·开发语言
是小崔啊2 小时前
开源轮子 - EasyExcel02(深入实践)
java·开源·excel
心软小念2 小时前
外包干了27天,技术退步明显。。。。。
软件测试·面试
myNameGL3 小时前
linux安装idea
java·ide·intellij-idea
青春男大3 小时前
java栈--数据结构
java·开发语言·数据结构·学习·eclipse
HaiFan.4 小时前
SpringBoot 事务
java·数据库·spring boot·sql·mysql
2401_882727574 小时前
低代码配置式组态软件-BY组态
前端·后端·物联网·低代码·前端框架
我要学编程(ಥ_ಥ)4 小时前
一文详解“二叉树中的深搜“在算法中的应用
java·数据结构·算法·leetcode·深度优先
music0ant4 小时前
Idea 添加tomcat 并发布到tomcat
java·tomcat·intellij-idea