Spring Boot初识(1)-了解Spring Boot
写在前面:半年工作经验的Java程序员一枚,奈何公司用的是自研的Web框架和RPC框架,本着good good study,day day up的精神和为以后发展的考虑觉得自己需要学点开源的东西,写的文章主要是自己的认识和踩过的坑,如果觉得我哪里写的不正确欢迎指教。
一.本文介绍
首先在阅读这篇文章前我要先说一下学习Spring Boot需要的基础,首当其充需要有Java基础,倒是没必要精通,但起码要知道继承封装多态,或是equals和==有什么区别(==对于基本类型来说比较的是值,对于引用类型比较的是内存地址,两个相同的对象即使属性值都一样但内存地址可能也不是一样的;equals如果不重写的话和==是一样的,String、Integer等对equals进行了重写比较的也是值)。其次就是Maven了,Maven作为项目管理工具最主要是对项目依赖关系的管理,Maven出现之前一个Java项目需要把各种jar包放到项目中,这就会导致项目本身臃肿或者出现难以解决的版本冲突,Maven通过groupId、artifactId、version作为一个条件唯一确定一个需要的jar包。最后如果你用过Spring那是极好的了,因为Spring Boot本着"约束大于配置"的理念就是对Spring的进一步封装,没用过也没关系因为Spring Boot使用起来容易上手。
二.为什么使用Spring Boot
JavaWeb项目的开发由最初的Servlet+Jsp到后来Spring的出现可谓是一大进步,但Spring复杂的配置同样让人头疼,Spring Boot主要依赖一个配置文件就可以完成Web项目启动,而且不需要依赖外部的Web容器或插件就可以运行,五分钟足够用Spring Boot写一个Hello World出来了。Spring Boot让开发人员不必把精力浪费在框架搭建上而是专注于业务的开发,我认为这是最大的一点好处,当然我觉得越简单的东西可能坑也越多,前面说过Spring Boot是基于“约束大于配置”,如果不遵循约束又不了解Spring Boot的底层实现就会出一些莫名其妙的问题,我已经踩过一些坑了。
三.开始第一个Spring Boot的Hello World
我用的是IDEA作为开发工具,一般创建Spring Boot项目首先可以从官网直接下载模板使用,或者是IDEA的Spring initilalizr功能(这个需要fanqiang),不过我觉得没有这个必要,直接建一个Maven项目把Spring Boot相关的依赖加进去就好了。
1.先新建一个Maven项目


输入GroupId、ArtifactId后直接点Finish就好了

2.我们要加入Spring Boot的相关依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <groupId>cn.test</groupId>
<artifactId>first</artifactId>
<version>1.0-SNAPSHOT</version>
<!-- Spring Boot引入的依赖,提供了一些默认配置 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/>
</parent>
<dependencies>
<!-- 支持Web需要引入的依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies> </project>
只需要这两个依赖就能够支持最简单的Web功能,现在暂时还不用使用配置文件(以后连数据库或者支持输出日志到文件再使用)。整个demo如下:

package cn.test;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
package cn.test.controller; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; @RestController
public class TestController { @RequestMapping("/test")
public String test(){
return "Spring Boot Demo";
}
}
3.运行DemoApplication里的Main函数输出如下日志:

使用了内置的Tomcat并启动了8080端口,访问http://localhost:8080/test效果如下:

至此一个最简单的基于Spring Boot的demo已经完成了,说一下我遇到的坑点:
- DemoApplication作为Spring Boot的启动类必须放在某个包下否则会报错,并且Spring Boot会递归扫描DemoApplication所在包下的文件
- DemoApplication里的@SpringBootApplication是Spring Boot启动的关键注解必不可少
- TestController里的@RestController注解的作用有两个,首先是把TestController这个类里的标了@RequestMapping注解的方法暴露出去让你在地址栏里敲对应的URL能访问到,其次就是把返回的数据以字符串形式展示。
- @RequestMapping注解就是规定一个标识,并把标识与方法绑定
四.总结
到这里我们已经有一个基于Spring Boot的Web框架了,如果用过Spring的话可以看到实现同样的功能Spring Boot远比Spring要简单的多,这其中的关键第一个是spring-boot-starter-parent这个依赖,第二个是@SpringBootApplication这个启动注解,后续会把Spring Boot与Mybatis相结合实现简单的增删改查,与Swagger2相结合自动生成接口文档。
Spring Boot初识(1)-了解Spring Boot的更多相关文章
- Spring Boot初识(2)- Spring Boot整合Mybaties
一.本文介绍 首先读这篇文章之前如果没有接触过Spring Boot可以看一下之前的文章,并且读这篇文章还需要你至少能写基本的sql语句.我在写这篇文章之前也想过到底是选择JPA还是Mybaties作 ...
- 【Spring Boot&&Spring Cloud系列】Spring Boot初识
项目代码地址:https://github.com/AndyFlower/Spring-Boot-Learn/tree/master/Spring-boot-helloworld 一.Spring B ...
- Spring Boot初识
今天准备开一个新系列springboot,springboot结束后会更新springcloud,想要学会springcloud先学springboot吧.以后springboot和hadoop轮流更 ...
- spring cloud教程之使用spring boot创建一个应用
<7天学会spring cloud>第一天,熟悉spring boot,并使用spring boot创建一个应用. Spring Boot是Spring团队推出的新框架,它所使用的核心技术 ...
- Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
之前有一篇<5分钟构建spring web mvc REST风格HelloWorld>介绍了普通方式开发spring web mvc web service.接下来看看使用spring b ...
- 【Spring】关于Boot应用中集成Spring Security你必须了解的那些事
Spring Security Spring Security是Spring社区的一个顶级项目,也是Spring Boot官方推荐使用的Security框架.除了常规的Authentication和A ...
- [转]Spring Boot——2分钟构建spring web mvc REST风格HelloWorld
Spring Boot——2分钟构建spring web mvc REST风格HelloWorld http://projects.spring.io/spring-boot/ http://spri ...
- Springboot(一):使用Intellij中的Spring Initializr来快速构建Spring Boot工程
使用Intellij中的Spring Initializr来快速构建Spring Boot工程 New---Project 可以看到图所示的创建功能窗口.其中Initial Service Url指向 ...
- spring boot 系列之四:spring boot 整合JPA
上一篇我们讲了spring boot 整合JdbcTemplate来进行数据的持久化, 这篇我们来说下怎么通过spring boot 整合JPA来实现数据的持久化. 一.代码实现 修改pom,引入依赖 ...
随机推荐
- Python开发——函数【迭代器、生成器、三元表达式、列表解析】
递归和迭代 小明问路篇解释说明 递归:小明——>小红——>小于——>小东:小东——>小于——>小红——>小明 小明向小红问路,因小红不知道,所以向小于问路,因小于不 ...
- etcd-v2第三集
简单说下golang的etcd接口例子.etcd api有v2(http+json)和v3(grpc)两个版本,目前大家都用v2,所以... v2: https://github.com/coreos ...
- 201621123002《Java程序设计》第七周学习总结
1. 本周学习总结 1.1 思维导图:Java图形界面总结 2.书面作业 1. GUI中的事件处理 1.1 写出事件处理模型中最重要的几个关键词. 事件源,事件处理方法,事件监听器 事件源(Event ...
- MBR内容解析
原先博客放弃使用,几篇文章搬运过来 MBR(Master Boot Record)即主引导记录. 使用Winhex打开,磁盘的第一扇区: 黄色部分(000H-1B7H):引导分区 作用:在主板BIOS ...
- 上传input中file文件到云端,并返回链接
有的文件.图片等信息可以上传到云端上,然后使用链接调用,这样会更加的方便和快捷. <form id="form"> <input type="file& ...
- Maths | Metropolis-Hastings algorithm
目录 1. 随机模拟的基本思想 2. 拒绝抽样 3. Metropolis-Hastings抽样 3.1. 引入思想 3.2. 理论基础:细致平稳条件 3.3. MH算法实现 3.4. 算法升级 3. ...
- python之路(三)-深浅拷贝
深浅拷贝用法来自copy模块. 导入模块:import copy 浅拷贝:copy.copy 深拷贝:deepcopy 字面理解:浅拷贝指仅仅拷贝数据集合的第一层数据,深拷贝指拷贝数据集合的所有层.所 ...
- 【repost】H5总结
1.新增的语义化标签: <nav>: 导航 <header>: 页眉 <footer>: 页脚 <section>:区块 <article> ...
- MySQL--事务隔离级别RR和RC的异同
在MySQL中,事务隔离级别RC(read commit)和RR(repeatable read)两种事务隔离级别基于多版本并发控制MVCC(multi-version concurrency con ...
- JQuery Mobile - 固定住页面和页脚
在点击页面空白时候,页眉和页脚会隐藏,在页眉和页脚加入以下代码就可以了: data-tap-toggle ="false" 例子: <div data-role=" ...