在实际的开发工作中,大部分项目都是基于框架来开发的。常见的Java 应用框架有 Spring,SpringMVC, SpringBoot, SpringCloud等。
在传统的Java项目中,通过Java框架与一些ORM框架,前端框架的组合,形成了一个Java项目的最基本的技术框架。框架之所以流行,在于其易复用和简化开发。常见的框架有:
SSH框架是JAVA EE中三种框架所集成,分别是Struts,Spring,Hibernate框架所组成。
集成SSH框架的系统从职责上分为(Struts2--控制;Spring--解耦;Hibernate--操作数据库),以帮助开发人员在短期内搭建结构清晰、可服用好、维护方便的web应用程序。
使用Struts作为系统的整体基础框架,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理Struts和Hibernate。
SSM框架,是三层结合所成的框架,分别是,Spring,SpringMVC,MyBatis所组成。
SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。
Spring依赖注入来管理各层,面向切面编程管理事务,日志和权限。
Mybatis是基于jdbc的框架,主要用来操作数据库,并且将业务实体和数据表联系起来。
SpringBoot 是一个全新框架,使用来简化Spring的初始搭建和开发过程,使用了特定的方式来进配置,让开发人员不在需要定义样板化的配置。 Spring boot 看名字就知道是Spring的引导,就是用于启动Spring的,使得Spring的学习和使用变得快速无痛。不仅适合替换原有的工程结构,更适合微服务开发。此框架不需要配置xml,依赖于像MAVEN这样的自动化构建工具来初始化项目。
Spring Cloud是一个基于Spring Boot实现的云应用开发工具,为微服务体系开发中的架构问题,提供了一整套的解决方案,包括:服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。
Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;springBoot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现。
1)spring 不说了,核心ioc、aop技术,ioc解耦,使得代码复用,可维护性大幅度提升,aop提供切面编程,同样的增强了生产力。
2)spring mvc嘛,是对比struts2等mvc框架来说的,不说struts2爆出的那么多安全漏洞,而且是类拦截,所有Action变量共享,同时是filter入口的,而spring mvc是方法拦截,controller独享request response数据,采用的serlvet入口,与spring无缝对接。开发而言,spring mvc更加轻量和低入门。
3)mybatis嘛,看业务场景,主要是mybatis的sql可以由开发者去掌控和调优,相对hibernate等orm框架来说,更加直观。在业务场景比较复杂,sql好多联合关联的情况下,mybatis谁用谁知道。当然缺点就是对sql不熟悉的开发者就不太友好了。
这两者对比起来有点奇怪。因为SSM是WEB应用框架,涵盖整个应用层,而spring boot你可以看做一个启动、配置、快速开发的辅助框架,本身针对的是微服务。springboot 只是为了提高开发效率,是为了提升生产力的:
1、springboot一个应用是一个可执行jar(启动类main方法启动web应用),而不像传统的war,内嵌tomcat容器,可以jar形式启动一个服务,可以快速部署发布web服务,微服务最好不过了。
2、将原有的xml配置,简化为java配置
3、当然结构可能跟一般的ssm有一定区别,但其实主要是在资源文件。
Spring Boot 默认“约定”从资源目录的这些子目录读取静态资源:
SSM 与 SSH 均是基于Spring开发。基于Spring开发有一下特点:
为了解决上述痛点,SpringBoot诞生了。SpringBoot框架有如下特点:
因此在项目中,为了加快项目的开发效率,简化开发流程,公司中大部分新的项目是基于SpringBoot 来开发的。学习SpringBoot,主要是学习其自动配置的原理,以及相关场景启动器 与 默认的版本管理等。
https://www.cnblogs.com/wwct/p/12942781.html
什么是SSM框架?有哪些组成部分?