SpringBoot 如何在一分钟内整合SSM?

写在前面

前几天看到“互扯程序”技术群(想要入群进行技术讨论请在下方留言)里有人问,什么是SSM?相信99%的人应该知道是什么,那么我给剩下的1%的人再解释一下什么是SSM。

SSM:表示Spring, Spring MVC,Mybatis,三大框架进行整合,现在互联网开发比较流行的一种整合方式。

SSH:表示Spring,Struts2,Hibernate,这三大框架进行整合,博主在几年前一直用这种整合方式做项目,最近几年已经切到SSM了。

SpringMVC是Spring开发的框架,所以它要比整合Struts2更简单,更契合一些。使用什么框架进行整合这也是仁智之见,没有绝对的好坏之分。也要看团队里对框架使用的熟练程度,是否增加学习成本,并且项目更适合哪个框架进行整合等等方面进行考虑。

Spring Boot已经是大势所趋,在此之前项目在进行整合SSM的时候要花好久的时间,而且还容易出错,大量的xml配置,每个框架的版本必须相对应,不然整合后会出现各种各样的问题。

idea如何在一分钟内完成SSM的整合

1. File --> New -->Project...

2. 选中 Spring Initializr 然后点击Next

GAV(GroupId、ArtifactctId、Version): Maven坐标,是用来唯一标识jar包。

1. 【强制】定义 GAV 遵从以下规则:

  • GroupID格式:com.{公司/BU }.业务线.[子业务线],最多4级。

说明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。 正例:com.taobao.jstorm 或 com.alibaba.dubbo.register

  • ArtifactID格式:产品线名-模块名。语义不重复不遗漏,先到中央仓库去查证一下。

正例:dubbo-client / fastjson-api / jstorm-tool

  • Version:详细规定参考下方。

2. 【强制】版本号命名方式:主版本号.次版本号.修订号

  • 主版本号:产品方向改变,或者大规模API不兼容,或者架构不兼容升级。
  • 次版本号:保持相对兼容性,增加主要功能特性,影响范围极小的API不兼容修改。
  • 修订号:保持完全兼容性,修复BUG、新增次要功能特性等。

说明:注意起始版本号必须为:1.0.0,而不是 0.0.1 正式发布的类库必须先去中央仓库进行查证,使版本号有延续性,正式版本号不允许覆盖升级。如当前版本:1.3.3,那么下一个 合理的版本号:1.3.4 或 1.4.0 或 2.0.0

注:以上定义规则,来自阿里巴巴开发手册,公众号回复“手册”获取。

3. Packaging:打包方式,可以选择Jar,因为Springboot内置了Tomcat和Jetty,直接运行java -jar *.jar,就能启动一个tomcat的web项目,不需要自己安装Tomcat了,所以非常方便。

配置mysql数据库连接参数

OK,SSM整合完毕。打开FastjsonApiApplicaiton类,我们可以看到注解

@SpringBootApplication 它相当于

@Configuration + @EnableAutoConfiguration + @ComponentScan 它们三个注解的组合。

FastjsonApiApplicaiton类只有一个main函数,众所周知,main函数是一个程序的入口。

右键启动

Spring Boot是使用SpringApplication引导项目启动,SpringApplication类为我们引导项目提供了一种便利的方式——通过main()方法直接启动。大多数情况下,我们可以把项目启动这个任务直接委托给SpringApplication.run方法。

启动成功,端口默认8080,可通过server.port参数配置进行修改。SpringBoot启动了内置的Tomcat,直接运行main函数的方式就把一个web系统启动起来了。是不是很神奇!

如果你超过了一分钟,再来一次,哈哈。

我们再创建一个Controller,更直观的看一下如何开发一个HTTP GET接口

重启服务,然后打开浏览器访问

到此为止你应该会用了,但是Spring Boot是什么呢?我们下面展开简单的讨论。

什么是Spring Boot?

Spring Boot是Spring的升级版,但并不是对Spring功能上的增强,而是提供了一种快速使用Spring的方式:开箱即用,没有代码生成,也无需XML配置。

Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于应用的开发,而无需过多关注XML的配置。

Spring boot简化了第三方包的引用,通过提供的starter,简化了依赖包的配置。使用starter对依赖的打包,我们在项目里只需要引入相应的starter,就相当于把一系列依赖的jar包引入到项目里了,极大的简化了maven配置。

starter 命名格式为spring-boot-starter-*

就比如说上面demo里引入的“spring-boot-starter-web”,而这个starter如果解压包出来会发现里面什么都没有,只定义了一些POM依赖,就相当于把web mvc相关的jar包引入到了项目里。

使用命令:./mvnw dependency:tree 可以看到web所依赖的jar包。

特点:

1. 创建独立的Spring应用程序

2. 嵌入的Tomcat,无需部署WAR文件

3. 简化Maven配置

4. 自动配置Spring

5. 提供生产就绪型功能,如指标,健康检查和外部配置

6. 绝对没有代码生成和对XML没有要求配置

今天我们只讲SpringBoot整合SSM,和上一篇在不引用SpringBoot的时候整合SSM做一个对比,一分钟能把一天做的事情做完。所以对上面Demo用到的一些注解也没有展开细致讲解。如果大家希望了解更多可以在下方留言,另外提供给大家关于Spring Boot的视频教学地址,都是从网上搜集,给大家进行分享,

链接:https://pan.baidu.com/s/1dAa5Oy 密码:s7pr

原文发布于微信公众号 - 互扯程序(chat_routine)

原文发表时间:2018-02-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微服务那些事儿

Spring Cloud 系列-执行器端点(Endpoint)

强推一波:https://segmentfault.com/ls/1650000011386794

2384
来自专栏散尽浮华

Centos7下部署分布式跟踪工具Pinpoint的操作记录

一、Pinpoint简单介绍 Pinpoint是一款对Java编写的大规模分布式系统的APM工具,有些人也喜欢称呼这类工具为调用链系统、分布式跟踪系统。一般来说...

1552
来自专栏JAVA高级架构

作为一个Java架构师程序员 你应该会什么

一,JAVA架构师 1、语法:Java 程序员必须比较熟悉语法,在写代码的时候IDE 的编辑器对 某一行报错应该能够根据报错信息 知道是什么样的语法错误并且知道...

4175
来自专栏全华班

springcloud学习手册-什么是springcloud?

导读 | springcloud 概念 springboot框架。 了解springcloud前先简单了解一下springboot框架。 springboot是...

4515
来自专栏程序员互动联盟

【答疑解惑】Android sdk ndk source的区别

SDK:(software development kit)软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发...

3357
来自专栏BeJavaGod

LeeCX - 开源后台管理系统简单介绍

我们在github上开源了一个后台管理系统,使用了前端css框架并且简单的封装了一下,技术的将会不间断更新,详细可以点击https://github.com/l...

4064
来自专栏自然语言处理

文本挖掘系列文章4

搜索已经作为生活中不可缺少的一部分,诸如:百度、google、还是在微信上寻找好友或者通过一段文本查找关键字。另外亚马逊、京东、天猫、苏宁等电商在搜索中也是别有...

2204
来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】Java开源web框架汇总(152款)

“框架”犹如滔滔江水连绵不绝, 知道有它就好,先掌握自己工作和主流的框架; 在研究好用和新框架。 主流框架教程分享在Java帮帮-免费资源网 其他教程需要时间制...

1.3K5
来自专栏Rainbond开源「容器云平台」

使用Java构建微服务

1152
来自专栏北京马哥教育

Apache、tomcat、Jboss、weblogic、WebSphere区别和容器的作用

总结:Apache/Tomcat/JBOSS/Nginx区别 . 1、Apache是Web服务器,Tomcat是应用(Java)服务器。Tomcat在中小型系...

9346

扫码关注云+社区

领取腾讯云代金券