前言
因为项目组需要进行微服务改造,而微服务开发中需要以Spring Boot为基础。因此需要先弄懂SpringBoot。
我们先来看看SpringBoot的背景由来,SpringBoot是什么,一个简单的SpringBoot样例工程
1.SpringBoot的背景由来
springboot是为了解决什么问题而产生的呢?
我们先来看看,在spring boot之前,作为一个java开发者要从无到有的开发一个新的web项目,我们都需要做哪些?
第一,我们创建一个java web项目,使用maven管理jar包
第二,修改pom文件,添加第三方jar包
第三,配置web.xml(或者一个WebApplicationInitializer实现),其中声明了DispatcherServlet
第四,配置spring及mvc等组件中需要的配置
第五,开发业务功能
第六,构建war包,部署项目到tomcat中
总之,创建一个新项目需要这么多步。
如果有一种更简单的方式,原本需要你小半天才能做好的工作,现在只需要十几分钟就做好,岂不是更好
因此Spring Boot就诞生了。人是多么的聪明啊
2.Spring Boot是什么
spring boot是一个简化搭建spring应用以及简化开发过程的一种框架。
Spring Boot模式开发相对于传统的Web开发还是有点颠覆性改变的:
第一,SpringBoot应用程序使用jar来运行,而传统模式是打成war包部署到servlet容器中。使用jar的模式有助于减轻运维人员的功能,更便于在Docker这种云平台的运行环境中使用。
第二,SpringBoot是应用启动容器,而传统模式时容器启动应用。这样Spring boot的一个优势是程序本身管理了容器版本,业务代码与运行容器是直接绑定的
第三,SpringBoot使用了大量的AutoConfig来进行探测和应用配置,使得代码配置很简单,但内部处理细节也被隐藏的很深。
3.一个简单的Spring Boot样例工程
环境:Eclipse maven
项目结构:
pom文件
- spring boot父级依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.M6</version> </parent>
spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,可查看C:Users用户.m2 epositoryorgspringframeworkootspring-boot-dependencies2.0.0.M6spring-boot-dependencies-2.0.0.M6.pom
- 依赖 spring-boot-starter-xx
这个样例工程是web项目,所以依赖中用到spring-boot-starter-web
- spring boot maven插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
- 应用入口类SampleApplication
- 控制类SampleController
使用SpringMVC的RestController返回一个json对象
- Greeting:定义一个简单的POJO来作为返回对象。
最终效果是访问localhost:8080的时候,页面会展示一个JSON字符串。