Spring框架面试题是每一个想要成为合格的Java程序员或者工程师需要熟悉的,面试者在面试之前到底需要准备哪些东西呢?今天这些内容也可作为个人简历内容,同时也是日后面对面试官时有可能设计到的问题:
1.你对Spring框架的理解(特点)? Spring框架有哪些模块 ?
- Spring,一种用来简化企业应用级开发的一种开源框架。
- 简化开发:它对常用的API做了封装,比如对JDBC的封装,使用Spring JDBC访问数据库,就不需要考虑如何获取连接和关闭的问题。
- 解:Spring帮我们管理软件之间的依赖关系,这样对象之间的合性就降低了。这样的维护性就得到了提高。.集成其它框架:方便扩展和优化其功能,例如和Mybatis的集成等。0
- Spring框架是按照设计模式精心打造的,这使得我们在开发环境中,能方便的使用框架,不用考虑后台是怎么进行的。
- Spring容器是Spring框架中一个核心的模块,用来管理对象的创建,销毁和初始化托操作,以及对象之间的依赖关系等。
- 目前Spring框架已经集合成20多个模块:
2.Spring的优点?
- 简化开发,解耦,集成其它框架。
- 低侵入式设计,代码污染级别级别。
- Spring的DI机制降低了业务对象替换的复杂性,提高了软件之间的解耦。
- Spring AOP支持将一些通用的任务进行集中式的管理,例如:安全,事务,日志等,从而使代码能更好的复用。
3.什么是控制反转 (IOC) ,什么是依赖注入 (DI) ?
0C:就是对象之间的依赖关系由容器来创建,对象之间的关系本来是由我们开发者自己创建和维护的,在我们使用Spring框架后,对象之间的关系由容器来创建和维护,将开发者做的事让容器做,这就是控制反转。BeanFactory接口是Spring loc容器的核心接口。。Dl: 我们在使用Spring容器的时候,容器通过调用set方法或者是构造器来建立对象之间的依赖关系。。控制反转是目标,依赖注入是我们实现控制反转的一种手段
4.Java中实现依赖注入的三种方式?
5.Spring容器中如何创建对象?
无参构造创建静态工厂创建实例工厂创建
6.Spring有几种配置方式?
- 基于XML文件的配置 这种配置文件的格式常用开头,然后运用一系列的bean定义和专门的应用配置选项组成。Spring XML配置方式是使用被Spring命名空间所支持的一些列XML的标签来实现的
- 基于注解的配置 可以使用注解的方式来代替XML方式的bean元素的配置。这就是组件扫描,常用依赖注入的一些注解有:@Controller @Service @Autowired @RequestMapping @RequestParam @ModelAttribute @Cacheable @CacheFlush@Resource @PostConstruct @PreDestroy @Repository @Scope @SessionAttributes @lnitBinder @Required @Qualifier组件扫描: 容器会扫描base-package指定的包及其子包下面的所有类,如果该类有一些特定的注解,则纳入容器进行管理。
- 在类前面添加的一些特定的注解: @Component 通用注解 @Repository 持久层注解 @Service 业务层注解、@Controller 控制层注解
- 基于Java的配置
7.Spring Bean的生命周期 ?
- 指Spring中bean元素被实例化,和被销毁的过程。我们通过init-method属性指定初始化方法:通过destroy-method方法指定销毁方法。
- 注意:只有作用域为Sinaleton的时候才会有效。
8.解释什么叫延迟加载?
- 默认情况下,容器启动之后会将所有作用域为单例的bean创建好:但是有的业务场景我们并不需要它提前都创建好。此时,我们可以在bean中设置izay-init=“true”,这样,当容器启动之后,作用域为单例的bean.就不在创建。
9.解释什么是自动装配?
- 就是将一个Bean注入到其它的Bean的Property中,默认情况下,容器不会自动装配,需要我们手动设定。Spring 可以通过向BeanFactory中注入的方式来搞定bean之间的依赖关系,达到自动装配的目的。
- 自动装配建议少用,如果要使用,建议使用ByName
10.Spring bean元素的作用域?
- 当通过Spring容器创建一个Bean实例的时候,不仅可以完成bean实例的实力化,还可以为bean指定作用域。Spring bean元素的支持以下5种作用域:
- Singleton; 单例模式,在整个spring lOC容器中,使用singleton定义的bean将只有一个实例。
- Prototype: 多例模式,每次通过容器中的getBean方法获取prototype定义的beans时,都会产生一个新的bean的实例。
- Request: 对于每次Http请求,使用request定义的bean都会产生一个新的实例,只有在web应用时候,该作用域才会有效。
- Session: 对于每次Http Session,使用session定义的Bean都将产生一个新的实例。
- Globalsession:每个全局的Http Sesisonn,使用session定义的本都将产生一个新的实例。
以上就是“2023年Spring框架面试题总结”,你能回答上来吗?如果想要了解更多的相关内容,可以关注极悦Java官网。