Spring Boot系列—(一)入门
前言
因为项目组需要进行微服务改造,而微服务开发中需要以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\repository\org\springframework\boot\spring-boot-dependencies\2.0.0.M6\spring-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字符串。
Spring Boot系列—(一)入门的更多相关文章
- Spring Boot 系列总目录
一.Spring Boot 系列诞生原因 上学那会主要学的是 Java 和 .Net 两种语言,当时对于语言分类这事儿没什么概念,恰好在2009年毕业那会阴差阳错的先找到了 .Net 的工作,此后就开 ...
- spring boot 系列之五:spring boot 通过devtools进行热部署
前面已经分享过四篇随笔: spring boot 系列之一:spring boot 入门 spring boot 系列之二:spring boot 如何修改默认端口号和contextpath spri ...
- (Spring Boot框架)快速入门
Spring Boot 系列文章推荐 Spring Boot 入门 Spring Boot 属性配置和使用 Spring Boot 集成MyBatis Spring Boot 静态资源处理 今天介绍一 ...
- Spring Boot【快速入门】简单案例
Spring Boot[快速入门] Spring Boot 概述 Build Anything with Spring Boot:Spring Boot is the starting point ...
- 玩转spring boot——结合JPA入门
参考官方例子:https://spring.io/guides/gs/accessing-data-jpa/ 接着上篇内容 一.小试牛刀 创建maven项目后,修改pom.xml文件 <proj ...
- spring boot(一):入门篇
构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...
- Spring Boot 系列教程19-后台验证-Hibernate Validation
后台验证 开发项目过程中,后台在很多地方需要进行校验操作,比如:前台表单提交,调用系统接口,数据传输等.而现在多数项目都采用MVC分层式设计,每层都需要进行相应地校验. 针对这个问题, JCP 出台一 ...
- Spring Boot 系列教程18-itext导出pdf下载
Java操作pdf框架 iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好 ...
- Spring Boot 系列教程17-Cache-缓存
缓存 缓存就是数据交换的缓冲区(称作Cache),当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找.由于缓存的运行速度比内存快得多,故缓存的作用就是帮 ...
- Spring Boot 系列教程16-数据国际化
internationalization(i18n) 国际化(internationalization)是设计和制造容易适应不同区域要求的产品的一种方式. 它要求从产品中抽离所有地域语言,国家/地区和 ...
随机推荐
- Sublime : python环境
1.安装python.注意区分32位和64位版本,勾选下图红框实现自动将python安装位置添加到环境变量 2.键盘win+r,输入cmd调出命令行,输入python回车,根据结果查看时候安装成功 3 ...
- 在OpenStack里怎样配置Neutron,让虚拟机访问外网
http://blog.csdn.net/zhangli_perdue/article/details/50264681 OpenStack里虚机(或者叫instance)只有在分配floating ...
- MSSQL2005数据库显示单一用户模式,无法进行任何操作
MSSQL2005数据库显示单一用户模式,无法进行任何操作 经查询,使用exec sp_who进行查看链接线程,发现仍然有链接不断进行请求,将链接踢出,然后通过命令修复即可恢复 处理步骤: exec ...
- combobox里面显示checkbox
看了http://www.cnblogs.com/yubinfeng/p/4463418.html这篇博客,我添加了部分代码,以便在最后获取combobox的value时可以拿到一个数组. HTML代 ...
- shell中条件判断if中的-z到-d
shell中条件判断if中的-z到-d的意思 2011-09-05 10:30 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为 ...
- FMDB官方使用文档 G-C-D的使用 提高性能(翻译)
由于FMDB是建立在SQLite的之上的,所以你至少也该把这篇文章从头到尾读一遍.与此同时,把SQLite的文档页 加到你的书签中.自动引用计数(APC)还是手动内存管理呢? 两种都行,FMDB会 ...
- 013对象—— __clone __toString __call
<?php /** * */ //__clone()方法对一个对象实例进行的浅复制,对象内的基本数值类型进行的是传值复制 /*class a { public $uname; public $n ...
- 【Wannafly挑战赛9-B】数一数
链接:https://www.nowcoder.net/acm/contest/71/B 题目就不贴了.. 设res[i]为第i行的最终结果,可以想到,res[i]为0或不为0.长度不是最短的字符串r ...
- 内存保护机制及绕过方案——通过覆盖SEH异常处理函数绕过/GS机制
通过SEH链绕过GS保护机制 ⑴. 原理分析: i.异常处理结构(SEH)处理流程如下: SEH是基于线程的,每一个线程都有一个独立的SEH处理结果,在线程信息块中的第一个结构指向线程的异常列表,F ...
- nivicat premium连接阿里云数据库
1.首先打开Navicat,文件>新建连接>MySQL连接,其他的如一图所示 其中: 连接名:自己取一个名字 主机名:填写mysql的地址 用户名:mysql的登录的用户名 密码:登录的密 ...