能联系做仿瓷的网站,优化网站建设seo,用源码做自己的网站,营销型网站的评价在面试过程中#xff0c;Spring几乎是必问的几个点之一#xff0c;特别是其中的IOC和AOP。
Spring常见的面试问答题
什么是Spring#xff1f;
首先#xff0c;Spring是一个生态#xff0c;但是呢#xff0c;这个生态里面又有个Spring Framework框架。
所以从Spring生…在面试过程中Spring几乎是必问的几个点之一特别是其中的IOC和AOP。
Spring常见的面试问答题
什么是Spring
首先Spring是一个生态但是呢这个生态里面又有个Spring Framework框架。
所以从Spring生态来说它包含了Spring Framework、Spring MVC、Spring Boot以及Spring Cloud和一些其他的框架如Spring Gateway、Spring Security、Spring Data还有最新出来的Spring AI。
从Spring Framework来说呢它是一个IOC的容器框架并包含了AOP切面和Rest Template接口请求等很多组件工具的框架。
它最核心的功能是IOC和AOP其中IOC就是负责处理解决代码层跟层例如controller层和service层之间的对象的解耦问题。AOP切面是针对现有业务的一个没有痕迹的增强面向切面编程。
Spring可以没有AOP等功能但是一定不能没有IOC这个是所有Spring生态的一个基础。
说说Spring的优缺点
Spring的优点 集成了很多的实用组件例如AOP切面、Rest Template 接口请求工具不用额外引入OkHttp和HttpClient、异步调用。 IOC容器管理对象使我们对象与对象之间的耦合度极大程度的降低也方便了我们去维护对象。 例如 我们需要将一个对象设置为单例不用 Spring 呢我们就需要去额外使用单例模式自己实现自己维护而在 Spring 里只需要将这个对象设置为 bean 用Component、Service等托管给IOC容器就行因为Spring的IOC默认就是单例的。DefaultListableBeanFactory类工厂里存在一个命名为beanDefinitionMap的Map集合专门用来存放bean的定义信息key -- beanNamevalue -- BeanDefinition对象 如果想将对象设为多例的也很简单只需要设置Scope为prototype。 想要将对象配置为懒加载则只需要给它加上lazy注解。 Spring针对bean提供了很多的配置操作。 Spring提供的AOP切面工具可以在不改动原有业务代码的情况下去对其做一个增强可以大量减少我们的重复代码同时也会提高我们的开发效率和便于维护。 Spring提供了一个声明式事务Transactional注解可以让我们从繁杂的事务管理代码里面脱离出来。 Spring集成了很多的开发框架拥有很好的粘合度集成能力非常强只需要简单的配置一下即可。 提供了很多的底层扩展接口供外部扩展。底层源码写的非常好用到了很多的设计模式工厂模式、单例模式等和反射看了之后受益匪浅。
Spring的缺点
在应用层面感觉没有缺点。
鸡蛋里挑骨头Spring大而全集成了这么多的框架、功能是需要提供非常非常多的扩展点这也就导致它的底层会非常的复杂代码量也会非常的庞大对于深入学习源码带来了很大的困难。
上层对外越简单下层内部就会越复杂。
关注我我将持续输出Java常用相关技术文章。