Spring、SpringMVC、SpringBoot都是什么,有什么区别
Spring、SpringMVC、SpringBoot都是什么,有什么区别
-
Spring:是一个轻量级的基于IOC和AOP的容器框架,是用来简化开发流程的一套框架。
- IOC:Inversion of Controller 控制反转。不好理解的概念:应用不负责依赖对象的创建,而是把它们创建的控制器交给外部容器,这种控制权的转移就是控制反转。简单说的意思就是:
public void add(User user){ @Resource private UserServiceImpl userServiceImpl; //如果没有IOC,我们这里想调用userServiceImpl里的add方法, //应该写为UserServiceImpl userServiceImpl = new UserServiceImpl(); 但是IOC帮我们做了这件事 userServiceImpl.add(user); }
- DI:Dependency Injection 依赖注入。概念:在运行期,由外部容器将依赖对象传给应用的过程。简单意思:IOC帮我们创建了对象,但是传给谁,就是DI决定,也就是上面的例子中@Resource的作用体现的就是DI。
- AOP:面向切面编程。概念:面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装为一个可重用的模块,这个模块被命名为“切面”(Aspect)。不好理解吧,继续简单解释什么意思:Spring中的事务大家肯定都知道吧,那Spring中的事务是怎么实现的那,其实就是AOP去实现的。AOP就像个过滤器一样,它能知道你执行了什么方法,还能对方法的前后进行拦截,决定是否需要回滚事务。体现的就是一种动态代理的思想。那什么是动态代理那?可以看我之前的文章,里面就详细说明了静态代理和动态代理模式。
-
SpringMVC:是一个基于Servlet的MVC(Model-View-controller)框架,主要关注于Web层的请求处理和响应。项目通常需要部署在Web服务器上,如Tomcat、Jetty等。开发者需要将项目打包成war文件并部署在服务器上才能运行。它提供了很多注解,像是
@RequestMapping
这样用于映射请求路径的注解,要不然咱们写javaweb的时候,还要用flag.equals("add")
这样的方式才能获取请求路径。 -
SpringBoot:是一个配置工具,整合工具。用来简化Spring的开发流程的,省去了很多繁琐的、重复的xml配置。SpringBoot主要关注于Spring应用的启动和运行,是一个一站式的解决方案。内嵌Tomcat,直接在main方法就可以启动程序。 maven打出jar包,直接就可以运行,不需要像war包一样,将其放在Tomcat的webapp目录下才行。它最最核心的功能就是自动装配,也就是main方法上的那个
@SpringBootApplication
注解。