文章目录
- 1.关于spring面试高频面试技术点!
- 2.谈一下自己对spring的理解!
- 3.简单介绍一下Spring的模块!
- 4. 请简述一下使用spring的好处!
- 5.spring中都用到了哪些设计模式!
- 6.请简述对应的springIOC!
- 7.可以通过多少种方式完成依赖注入
- 8.请简述spring IOC的容器!
- 9.列举对应的IOC的优势:
- 10. spring中有哪些不同类型的事件。
- 11. spring Bean的配置方式
- 12.springBean的生命周期!
- 13.什么是spring装配!
- 14.说一下什么是延迟加载!
- 15.什么基于注解的配置!
- 16. 简单说一下对AOP的理解!
- 17.什么是advice
- 18.AOP有哪些实现。
- 19.列举spring支持的事务类型!
1.关于spring面试高频面试技术点!
- spring的组件springFarmwork即是spring它提供了springmvc,
- springIOC容器化技术实现控制反转,
- SpringAOP实现面向切面编程
- Springtransactional实现对事物的管理
2.谈一下自己对spring的理解!
框架的作用是为我们简化开发,spring是一款轻量型框架,将代码解耦合开发,spring对Java分层管理,提升了代码的可阅读性,spring还对多种框架进行集成,完成对应的一站式服务,
spring提供控制反转功能:即springIOC就是将对象的创建权交给spring管理,我们无需对创建对象,这样可以提升对应效率,节约了创建对象的时间。spring为我们提供了工厂模式,使用beanfactory工厂创建对象,一般我们使用对应的继承接口,applicationContext完成对应的配置文件的读取。
springAOP:是指面向切面编程,面向切面,是spring提供的对事物的服务,而spring提供了两种事务,一种是响应式事务,另外一种是编程式事务,springAOP将响应式事务直接集成到对应的应用程序中。
springtransactional是spring提供的事务:它有两种,一种是响应式事务,另外一种是编程式事务,使用AOP与事务结合,完成对应的事务的管理。
3.简单介绍一下Spring的模块!
spring提供的模块有对应的data层的数据持久化的支持,有对应的ORM,对象关系映射,对应的JDBC完成对应的持久化数据库的支持,比如说Mysql,比如说,Oracle完成对应的数据的持久化的支持。还有对事务的管理,transactions支持对应的持久化层的数据,对wab层的数据支持的模块有web,websocket,servlet完成对应的web层数据的管理,对应的还有aspect完成对应的切面的管理,AOP面向切面完成对应的的管理,spring提供的核心有对应的Cores,Bean,context上下文对象,spel是对应IOC容器化的支持。
- JDBC完成对应的持久化数据的支持,比如说,mysql,oracle数据库,完成对数据库的封装
- ORM是指对应的对象关系映射,完成对应的框架的使用比如说hibernate使用,以及半自动框架mybatis框架的使用。
- transactions完成对应的事务的支持,使用注解或者xml,包括编程式事务,或者响应式事务。
web层的管理: - web是对应的mvc对应的封装,完成对应的controller的管理。
- websocker一般是对应的聊天信息的支持。
- servlet是对应的web层,数据的请求与数据的接收,使用对应request,response
Spring的核心容器: - core是spring的核心代码
- bean是spring的对应的是工厂模式的具体实现,beanfactory的实现,与对应的IOC共同完成。
- springcontext完成对应的上下文的创建。
- spel是对应的IOC的模式是一样的 。
AOP:是面向切面编程是一种编程思想,他的作用是对事务更好的支持,对对应的声明式事务更好的支持。
4. 请简述一下使用spring的好处!
- spring是现在的主流框架,他对其他持久层框架有很好的支持,比如说ORM框架,日志框架都有很好的支持。
- 支持对应的DI注入,完成对应的参数传递。
- spring是一种轻量型框架,使用起来比较方便
- spring有很好的对事务进行支持
- 提供了比较好的异常处理机制
- 提供了对web的支持springmvc
- 使用面向切面思想,将代码分离。
5.spring中都用到了哪些设计模式!
- 单例设计模式:分为懒汉式设计模式,饿汉式设计模式,
- 代理模式:有对应的静态代理模式动态代理模式,对应的动态代理模式有对应的基于jdk的动态代理模式,基于cglib的动态代理模式,基于jdk的动态代理模式是基于接口实现的,基于cgilb的动态代理模式是对应的cglib的。
- 模板设计:对应的有redistmplate,jdbctemplate对模板的设计
- 工厂模式:使用beanfactory,创建对应的beanfactory工厂。
- 前端控制器:dispathservlet来完成对应的请求的分发。
- 提供DI依赖注入,完成对应的数据的applicationcontest的接口实现。
6.请简述对应的springIOC!
springIOC是spring的控制反转功能,spring的IOC容器,通过Bean工厂,完成对对应的实例化。通过依赖注入Di完成对应的实例化。可以通过对应的XML完成对应的配置的读取,通过配置类,完成对应的配置类的注入。
依赖注入是DI完成的是对对应的功能的实现。springIOC是一种控制反转的思想,将对应的对象的创建权交给spring去创建,利用spring的bean工厂模式,创建对应的配置类,完成控制反转的功能实现,
7.可以通过多少种方式完成依赖注入
三种:
- 通过接口注入,接口注入一般我们不适用
- 通过构造函数注入
- 通过对应的setter方法注入
需要注意的是构造方法不会对应的参数覆盖,setter会对对应的set方法覆盖。
8.请简述spring IOC的容器!
springIOC容器有两类:
- beanfactory :通过备案工厂,完成对应的数据的实例化
- applicationcontext:他是对应的beanfactory的接口的实现,它提供了对应的拓展的方法,完成对应的功能的封装
他们的区别在于:applicationContext可以配置容器的实例化方式,指定对象的创建周期,完成应的兑现的实时加载,提高效率。 - application的实例化方式:
- classpathXMLapplication:类加载对象,完成对配置类信息读取。
- fileSystemXMLapplication:完成对应的文件的上下文读取。
- webXMLapplication完成对应的信息的读取。
springboot支持的是configactionwebXMLapplication
9.列举对应的IOC的优势:
- 程序的最小化代码,提升代码的开发效率。
- 可以控制对象的加载策略,是实时加载还是延迟加载。
- 易于测试,代码的测试。
- 将代码解耦合:
10. spring中有哪些不同类型的事件。
application提供了对应事件的监听功能。
五种对应的事件通知:
- 上下文开始事件通知:该通知是调用application时调用的通知,或者是configactionWebXmlApplication时调用的通知调用start方法时。
- 上下文更新事件通知:调用application或者configactionWebXmLapplication时更新。
- 上下文停止事件通知:容器关闭 或者停止时触发该事件。
- 上下文关闭事件通知:当application管理的bean被触发时,关闭的触发事件,所有的bean都将被销毁。
- 请求处理事件通知:当一个http请求结束时,一个请求处理事件被触发。
11. spring Bean的配置方式
springbean的配置方式有三种,
- 基于xml配置:在xml文件中进行配置
- 基于spring注解:需要先开启注解
- 基于Java配置类:使用注解@configaction声明配置类,完成对应的配置信息。使用@Bean声明对应的配置信息。
12.springBean的生命周期!
- 实例化bean对象,完成对应的对象的初始化。
- 使用构造方法赋值到对应的bean的对象中。
- 进一步初始化对象,完成对应的方法调用
- 服务器关闭销毁对应的bean对象。
13.什么是spring装配!
简单的来说就是spring与bean混合使用,spring的IOC与对应的bean绑定在一起,以及容器如何使用依赖注入,,将对应的bean绑定在一起。实际上DI和spring装配是指一个东西。
14.说一下什么是延迟加载!
一般单例模式spring容器启动,会将对应的对象先创建完成,延迟加载使用对应的lazy-init完成对应的,懒加载,使启动项目时不创建对应的对应的对象,使用时再创键,这就是延迟加载。
15.什么基于注解的配置!
与对应的XML配置不同,基于注解是在对应的JAva类中,添加对应的@configaction声明注解的配置类,使用@Bean扮演对应的的标签。
常用的注解有
@Service在对应的service中使用
@Controller在对应的web曾使用声明
@Respository在持久层使用,声明为持久类
@Component交给spring管理的常用的注解
@Autowired引入对应的与对应的Bean,其作用就是自动装配,默认的类型驱动注入。
@Qualifiler相同的类型的bean使用这个注解消除对应的歧视。
16. 简单说一下对AOP的理解!
spring协助对应的事务,完成对应的和功能实现,AOP是指面向切面编程,aspect是由切点和通知组成,减少业务代码中,混入对应的系统代码,比如说,事务 ,日志信息,权限管理。
aop的实现原理是基于jdk的动态代理,反射共同实现完成。将对应的系统代码抽离出来,使用的动态代理。
在切点中,织入对应的代理功能,比如说对应的事务,权限管理,日志管理。
一个方法的执行或者一个异常的处理。
advice和pointcut
在类中我们可以认为所有的节点是一个jointcut,但是我们不是所有的事务都添加对应的织入advice而pointcut就是提供对应的,给满足条件的pointcut添加对应的advice。
17.什么是advice
advice是对应的织入,通知的意思。
有哪些类型:
@Before:这个是在对应的注解之前执行,并且使用对应的
@After returning这个是在对应的方法执行后执行,并且返回对应的信息。
@@After Throwing 这个是在对应的节点之后执行对应的
@After finally 不管是否遇到一异常都会去执行
@Around在连接点之前之后执行
18.AOP有哪些实现。
静态代理:
动态代理:
- 基于JDK的动态代理,基于cglib的动态代理
- jdk动态代理,是基于接口实现的,cglib的动态代理是基于方法实现的。
19.列举spring支持的事务类型!
声明式事务:从而事务管理与业务代码分离
编程式事务:使用编程式事务代码的调用回滚,非常简单,但是封装起来相对麻烦。