面试要点总结-spring
spring
spring是什么?
spring是一个是一个轻量级的 IoC 和 AOP 的业务层框架,它的使命是为了简化java的开发;
轻量级:spring本身有很多的服务,但它启动时只启用了核心的服务
IOC: IoC(Inverse of Control:控制反转)是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。
将对象之间的相互依赖关系交给 IoC 容器来管理,并由 IoC 容器完成对象的注入。这样可以很大程度上简化应用的开发,把应用从复杂的依赖关系中解放出来。 IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要加一个注解即可,和面向对象的思想很类似,完全不用考虑对象是如何,何时被创建出来的。
AOP:AOP能够将那些不是业务,却能同时为许多业务提供服务的逻辑(例如事务处理、日志管理、权限控制等) 封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象;而对于没有实现接口的对象,就无法使用 JDK Proxy 去进行代理了,这时候Spring AOP会使用Cglib 去创建代理对象
列举一些重要的Spring模块
Spring Core: 基础模块,可以说 Spring 其他所有的功能都需要依赖于该类库。主要提供 IoC 依赖注入功能。
Spring JDBC : Java数据库连接
Spring Web : 为创建Web应用程序提供支持
Spring AOP :提供了面向切面的编程实现
@RestController vs @Controller
@Controller 返回一个页面
@RestController = @Controller + @ResponseBody 返回JSON 或 XML 形式数据
Spring bean
Spring 中的 bean 的作用域有哪些?
singleton : 唯一 bean 实例,Spring 中的 bean 默认都是单例的。
prototype : 每次请求都会创建一个新的 bean 实例。
request : 每一次HTTP请求都会产生一个新的bean,该bean仅在当前HTTP request内有效。
session : 每一次HTTP请求都会产生一个新的 bean,该bean仅在当前 HTTP session 内有效。
@Component 和 @Bean 的区别是什么?
1、作用对象不同: @Component 注解作用于类,而@Bean注解作用于方法。
2、@Bean 注解比 Component 更灵活,而且很多地方我们只能通过 @Bean 注解来注册bean。比如当我们引用第三方库中的类需要装配到 Spring容器时,则只能通过 @Bean来实现。
3、@Bean 要配合@configuration来使用
Spring 中的 bean 生命周期?
暂时不懂。。。
Spring 框架中用到了哪些设计模式?
工厂模式 : Spring创建Bean
单例模式 : Spring 中的 Bean 默认都是单例的。
代理设计模式 : Spring AOP
模板方法模式 : Spring 中 jdbcTemplate对数据库操作的类,RestTemplate远程调用
适配器模式 : spring MVC 中用到了适配器模式(HandlerAdapter)适配Controller。
Spring 管理事务的方式有几种?
1、命令式:编码
2、声明式:配置
2.1:基于XML
2.2:基于注解
Spring 事务中的隔离级别有哪几种?
1、使用数据库默认的隔离级别,Mysql 默认采用的 可重复读隔离级别,Oracle 默认采用的 读取已经提交的数据隔离级别.
2、读取未提交的数据:可能会导致脏读、幻读或不可重复读
3、读取已经提交的数据:可以阻止脏读,但是幻读或不可重复读仍有可能发生
4、可重复读:可以阻止脏读和不可重复读,但幻读仍有可能发生。
5、串行化:可以防止脏读、不可重复读以及幻读。但是这将严重影响程序的性能
本文地址:https://blog.csdn.net/weixin_49985669/article/details/110244280
上一篇: Java输入字符串统计其中每个字符的个数
下一篇: Spring工作常用方法