技术文章

Spring框架体系是重复造轮子吗?有必要学吗?

Spring框架体系不是重复要轮子,下面是我们常用的开发框架:

①ssh (spring/struts/hibernate)

②ssm(spring/springmvc/mybatis)

③springboot (基于spring)

④ dubbo

⑤ springcloud

⑥其他二次封装的框架

上面我们开发使用的框架都离不开spring,一句话:只要你还在用java开发,你就离不开spring。

Spring框架

Spring为什么那么重要?

Spring最主要的两大模块是Ioc和aop,Ioc就是依赖注入,以前如果我们在一个类中引用另外一个类,那么直接是new的,而现在有了spring,所有bean的生命周期和相互的依赖,都是由spring来管理的。

AOP:面向切面编程,即把我们平时业务中的公共部分提取出来写在切面里,然后在系统启动时,在底层使用动态代理,给需要切入的类加上公共的业务。比如我们的性能监控,事务的处理都是用的spring aop。

而且spring得可扩展性非常强

Spring的强扩展性体现在在哪儿?

看过源码的都知道,spring提供了非常多的Bean的后置处理器,不仅是这些,spring还在加载的各个阶段预留了空方法,就给用户去自定义实现。比如bean注册少,注册后,实例化前,实例化后,最后容器初始化要了还有预留的接口,如果我们需要扩展只要实现一个接口即可。

其他框架是怎么融合spring的呢?

① 我们先说spring aop 在哪个阶段对bean进行代理的

Aop在getBean方法里,在bean实例化前会初始化好切面和增强器。

在bean实例化后,使用spring预留的接口,实现对bean的代理。

② springboot集成tomcat是怎么启动的?

实在spring中的onRefresh()的空方法实现的,这时bean还没有初始化。

③ ureka注册中心在什么时候启动的?

在spring容器初始化完成后,有一个预留接口,ureka实现了这个接口进行启动。