面试题31:Spring框架中的事务管理有哪些方式?
答案:Spring框架中的事务管理有两种方式:
- 编程式事务管理:通过编写代码来管理事务,需要手动在代码中开启、提交或回滚事务。使用编程式事务管理需要更多的代码和处理逻辑,一般适用于复杂的事务场景。
- 声明式事务管理:通过在配置文件或注解中声明事务的属性,由Spring框架自动管理事务的开始、提交或回滚。声明式事务管理更加简洁,适用于普通的事务场景。
面试题32:Spring中的Bean作用域有哪些?它们有什么区别?
答案:Spring中的Bean作用域有以下几种:
- singleton:单例模式,一个Spring容器中只会存在一个实例对象,默认的作用域。
- prototype:原型模式,每次从容器中获取Bean时,都会创建一个新的实例对象。
- request:每次HTTP请求都会创建一个新的Bean实例,仅在Web应用中有效。
- session:每个HTTP Session都会创建一个新的Bean实例,仅在Web应用中有效。
- global session:全局Session,通常在Portal应用中使用。
区别:singleton作用域是默认的作用域,它在容器中只有一个实例,适用于无状态的Bean;prototype作用域每次获取Bean时都会创建一个新的实例,适用于有状态的Bean。而request和session作用域是在Web应用中使用的,分别在每次HTTP请求和每个HTTP Session中创建一个新的实例。
面试题33:Spring中的Bean的生命周期是什么?
答案:Spring中的Bean的生命周期包括以下几个阶段:
- 实例化阶段:在这个阶段,Spring会根据配置文件或注解等方式,创建Bean的实例。
- 属性赋值阶段:在实例化后,Spring会将配置的属性值注入到Bean中。
- 初始化阶段:在属性赋值完成后,Spring会调用Bean的初始化方法,可以通过实现InitializingBean接口或在配置文件中指定init-method方法来定义初始化逻辑。
- 使用阶段:在初始化后,Bean进入使用阶段,可以被其他Bean引用和使用。
- 销毁阶段:当Spring容器关闭时,会调用Bean的销毁方法,可以通过实现DisposableBean接口或在配置文件中指定destroy-method方法来定义销毁逻辑。
面试题34:Spring中的Bean装配有哪些方式?
答案:Spring中的Bean装配有三种方式:
- XML配置:通过在XML配置文件中声明Bean的定义和依赖关系,然后由Spring容器来加载和装配Bean。
- 注解:通过在Java类中使用注解(如@Component、@Autowired等),告诉Spring容器如何加载和装配Bean。
- Java配置:通过在Java类中使用@Configuration和@Bean等注解,手动配置和装配Bean。
(2)面试题:70道Spring面试题与答案
面试题35:Spring中的依赖注入有哪几种方式?
答案:Spring中的依赖注入有三种方式:
- 构造器注入:通过构造器来注入Bean的依赖。
- Setter方法注入:通过Setter方法来注入Bean的依赖。
- 接口注入:通过接口来注入Bean的依赖,主要用于集合类型的依赖注入。
面试题36:Spring中的AOP是什么?它的作用是什么?
答案:AOP是指面向切面编程,它是一种编程范式,可以实现将跨模块的功能抽象出来,然后通过动态代理的方式将这些功能应用到目标模块中。在Spring框架中,AOP可以实现事务管理、日志记录、权限控制等功能的复用和解耦。
面试题37:Spring框架中的事务管理有哪些方式?
答案:Spring框架中的事务管理有两种方式:
- 编程式事务管理:通过编写代码来管理事务,需要手动在代码中开启、提交或回滚事务。使用编程式事务管理需要更多的代码和处理逻辑,一般适用于复杂的事务场景。
- 声明式事务管理:通过在配置文件或注解中声明事务的属性,由Spring框架自动管理事务的开始、提交或回滚。声明式事务管理更加简洁,适用于普通的事务场景。
面试题38:Spring中的Bean作用域有哪些?它们有什么区别?
答案:Spring中的Bean作用域有以下几种:
- singleton:单例模式,一个Spring容器中只会存在一个实例对象,默认的作用域。
- prototype:原型模式,每次从容器中获取Bean时,都会创建一个新的实例对象。
- request:每次HTTP请求都会创建一个新的Bean实例,仅在Web应用中有效。
- session:每个HTTP Session都会创建一个新的Bean实例,仅在Web应用中有效。
- global session:全局Session,通常在Portal应用中使用。
区别:singleton作用域是默认的作用域,它在容器中只有一个实例,适用于无状态的Bean;prototype作用域每次获取Bean时都会创建一个新的实例,适用于有状态的Bean。而request和session作用域是在Web应用中使用的,分别在每次HTTP请求和每个HTTP Session中创建一个新的实例。
面试题39:Spring中的Bean的生命周期是什么?
答案:Spring中的Bean的生命周期包括以下几个阶段:
- 实例化阶段:在这个阶段,Spring会根据配置文件或注解等方式,创建Bean的实例。
- 属性赋值阶段:在实例化后,Spring会将配置的属性值注入到Bean中。
- 初始化阶段:在属性赋值完成后,Spring会调用Bean的初始化方法,可以通过实现InitializingBean接口或在配置文件中指定init-method方法来定义初始化逻辑。
- 使用阶段:在初始化后,Bean进入使用阶段,可以被其他Bean引用和使用。
- 销毁阶段:当Spring容器关闭时,会调用Bean的销毁方法,可以通过实现DisposableBean接口或在配置文件中指定destroy-method方法来定义销毁逻辑。
面试题40:Spring中的Bean装配有哪些方式?
答案:Spring中的Bean装配有三种方式:
- XML配置:通过在XML配置文件中声明Bean的定义和依赖关系,然后由Spring容器来加载和装配Bean。
- 注解:通过在Java类中使用注解(如@Component、@Autowired等),告诉Spring容器如何加载和装配Bean。
- Java配置:通过在Java类中使用@Configuration和@Bean等注解,手动配置和装配Bean。