spring 和 springmvc spring boot优点及区别
Posted q1427094386
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 和 springmvc spring boot优点及区别相关的知识,希望对你有一定的参考价值。
spring 和 springmvc spring boot优点及区别
概念
- spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,是一个分层的javaEE一站式轻量级开源框架。
- SpringMvc 是 spring 的一个模块,基于 MVC 的一个框架,无需中间整合层来整合。
- Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。Spring Boot其实就是一个整合很多可插拔的组件(框架),内嵌了使用工具(比如内嵌了Tomcat、Jetty等),方便开发人员快速搭建和开发的一个框架。
spring 特点
- 方便解耦,简化开发
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。 - AOP编程的支持
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。 - 声明式事务的支持
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。 - 方便程序的测试
可以用非容器依赖的编程方式进行几乎所有的测试工作,在Spring里,测试不再是昂贵的操作,而是随手可做的事情。例如:Spring对Junit4支持,可以通过注解方便的测试Spring程序。 - 方便集成各种优秀框架
Spring不排斥各种优秀的开源框架,相反,Spring可以降低各种框架的使用难度,Spring提供了对各种优秀框架(如Struts,Hibernate、Hessian、Quartz)等的直接支持。 - 降低Java EE API的使用难度
Spring对很多难用的Java EE API(如JDBC,JavaMail,远程调用等)提供了一个薄薄的封装层,通过Spring的简易封装,这些Java EE API的使用难度大为降低。
Spring优点:
- 低侵入式设计,代码污染极低
- 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
- Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦
- Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用
- Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问
- Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部
springmvc优点:
- 轻量级的框架,简单易学
- 与spring的兼容性好
- SpringMvc的功能强大,支持RESTful风格、数据验证等功能
- 框架的配置简单又不失灵活性。
- 代码的可重用性很高。
- 可扩展性好。
Spring MVC功能
- Spring MVC提供了一种轻度耦合的方式来开发web应用。
- Spring MVC是Spring的一个模块,式一个web框架。通过Dispatcher Servlet, ModelAndView和View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
SpringBoot特点:
- 可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;
- 内嵌Tomcat或Jetty等Servlet容器;
- 提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;
- 尽可能自动配置Spring容器;
- 提供准备好的特性,如指标、健康检查和外部化配置;
- 绝对没有代码生成,不需要XML配置。
Spring Boot优点
-
Spring Boot实现了自动配置,降低了项目搭建的复杂度。
众所周知Spring框架需要进行大显的配置,Spring Boot引入自动配置的概念,让项目设置变得很容易。
自动配置 spring:Spring Boot 会根据在类路径中的jar包,类,为jar包里的类自动配置Bean,这样会极大减少我们要使用的配置。 -
独立运行的spring项目:
Spring Boot可以以jar包形式直接运行,如java-jar xxxjar优点是:节省服务器资源 -
内嵌Tomcat或Jetty等Servlet容器;
Spring Boot 可以选择内嵌Tomcat,Jetty,这样我们无须以war包形式部署项目。 -
无代码生成和xml配置
Spring Boot大量使用spring4.x提供的注解新特性来实现无代码生成和xml 配置。spring4.x提倡使用Java配置和注解配置组合
Spring Boot不需要任何xml配置即可实现spring的所有配置。 -
准生产的应用监控
Spring Boot 提供基于http,sh,telnet对运行时的项目进行监控 -
提供starter 简化Maven 配置
在Spring Boot 项目中为我们提供了很多的spring-boot-starter-xxx的项目,我们导入指定的这些项目的坐标,就会自动导入和该模块相关的依赖包: -
集成了常用的第三方库配置
集成了大星常用的第三方库配置(例如Jackson,JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用,大部分的Spring Boot应用都只需要非常少量的配置代码,开发者能够更加专注于业务逻辑。
springboot和springmvc区别:
- spring boot只是一个配置工具,整合工具,辅助工具.
- springmvc是框架,项目中实际运行的代码
- Spring 框架就像一个家族,有众多衍生产品例如 boot、security、jpa等等。但他们的基础都是Spring 的ioc和 aop,ioc 提供了依赖注入的容器, aop解决了面向横切面的编程,然后在此两者的基础上实现了其他延伸产品的高级功能。
- Spring MVC提供了一种轻度耦合的方式来开发web应用。它是Spring的一个模块,是一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。解决的问题领域是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
- Spring Boot实现了自动配置,降低了项目搭建的复杂度。它主要是为了解决使用Spring框架需要进行大量的配置太麻烦的问题,所以它并不是用来替代Spring的解决方案,而是和Spring框架紧密结合用于提升Spring开发者体验的工具。同时它集成了大量常用的第三方库配置(例如Jackson, JDBC, Mongo, Redis, Mail等等),Spring Boot应用中这些第三方库几乎可以零配置的开箱即用。
- Spring Boot只是承载者,辅助你简化项目搭建过程的。如果承载的是WEB项目,使用Spring MVC作为MVC框架,那么工作流程和你上面描述的是完全一样的,因为这部分工作是Spring MVC做的而不是Spring Boot。
- 对使用者来说,换用Spring Boot以后,项目初始化方法变了,配置文件变了,另外就是不需要单独安装Tomcat这类容器服务器了,maven打出jar包直接跑起来就是个网站,但你最核心的业务逻辑实现与业务流程实现没有任何变化。
概括:
- Spring 是一个“引擎”;
- Spring MVC 是基于Spring的一个 MVC 框架;
- Spring Boot 是基于Spring4的条件注册的一套快速开发整合包。
以上是关于spring 和 springmvc spring boot优点及区别的主要内容,如果未能解决你的问题,请参考以下文章