Spring boot (一):入门篇
Spring boot 简介
Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.
上面是引用spring boot官方的话,简单来说spring boot是所有基于spring 应用的起点,spring boot的设计初衷就是想让开发者尽可能快地把项目运行起来,而且尽可能减少你的配置文件。
Spring boot 优势
其实上面的简介已经可以看出了spring boot的优势,主要就是一个——快!
回想起传统的一个web项目,即使是最简单的一个web项目,需要什么步骤呢?
1) 配置web.xml
2) 配置spring 文件,注入各种bean
3) 配置日志文件
...
如果涉及数据库和缓存还要配置数据库事务,缓存配置等等...构建完成后配置tomcat运行发布。
可能简简单单一个在线注册只需要填写用户名和电话的系统就配置就可能花你一天的时间了,这就是传统基于spring的web框架的弊端——配置太繁琐!
那么有了spring boot搭建一个web 项目需要做什么呢?
1.配置pom.xml,引入需要的jar包和构建命令。(通常做好一个模板就可以直接copy,不用每次都写)
2.编写你的controller。
3.运行spring-boot :run 把项目跑起来。
这里只需要三步就能构建一个简单的web项目,可见spring boot的简洁和简便,而且因为自带tomcat,更加让开发人员免去部署tomcat等麻烦。
项目结构
如上图所示,Spring Boot的基础结构共三个文件:
src/main/java 程序开发以及主程序入口
src/main/resources 配置文件
src/test/java 测试程序
搭建入门
- 新建一个maven project新建一个maven project,然后选择“maven-archetype-quickstart”,然后输入你的项目名字。
2. 配置好pom.xml
打开pom.xml,加上以下代码:
<!-- spring boot 基本环境 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.1.RELEASE</version>
</parent> <!--web应用基本环境配置 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies> <!-- 打包spring boot应用 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
3. 打开App.java,加上
@SpringBootApplication
注解,然后把main函数改成
public static void main( String[] args )
{
SpringApplication.run(App.class, args);
}
到这步springboot 的配置就已经完成,可以开始写你的业务层,编写一个helloword,然后就可以 用 spring-boot:run 运行。
@RestController
public class HelloWorld { @RequestMapping("/hello")
public String hello(){
return "Hello Spring Boot !";
} }
打开浏览器输入http://localhost:8080/hello 即可见到 “Hello Spring Boot !”.
重点详解
- spring-boot-starter :核心模块,包括自动配置支持、日志和YAML。
- spring-boot-starter-test :测试模块,包括JUnit、Hamcrest、Mockito。
- @RestController : controller里面的方法都以json格式输出,相当于 @Controller + @ResponseBody
- @SpringBootApplication : 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration @EnableAutoConfiguration @ComponentScan , 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。
其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下(这里为 com.springboot.demo 包)
GitHub 地址:https://github.com/chris-study-practice/springboot-study-demo
注意事项:
1. Spring Boot的被@SpringBootApplication注解的App.java必须放在所有的RestController的根路径的package下.
Spring boot (一):入门篇的更多相关文章
- Spring Boot -01- 快速入门篇(图文教程)
Spring Boot -01- 快速入门篇(图文教程) 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到[慕课网]手机 app ...
- spring boot 学习入门篇【spring boot项目的搭建以及如何加载jsp界面】
[ 前言] Spring Boot 简介:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置, ...
- spring boot入门教程——Spring Boot快速入门指南
Spring Boot已成为当今最流行的微服务开发框架,本文是如何使用Spring Boot快速开始Web微服务开发的指南,我们将使创建一个可运行的包含内嵌Web容器(默认使用的是Tomcat)的可运 ...
- Spring Boot 从入门到实战汇总
之前写过几篇spring boot入门到实战的博文,因为某些原因没能继续. 框架更新迭代很快,之前还是基于1.x,现在2.x都出来很久了.还是希望能从基于该框架项目开发的整体有一个比较系统的梳理,于是 ...
- Spring Boot从入门到精通(五)多数据源配置实现及源码分析
多数据源配置在项目软件中是比较常见的开发需求,Spring和Spring Boot中对此都有相应的解决方案可供大家参考.在Spring Boot中,如MyBatis.JdbcTemplate以及Jpa ...
- Spring Boot从入门到精通(六)集成Redis实现缓存机制
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...
- Spring Boot从入门到精通(七)集成Redis实现Session共享
单点登录(SSO)是指在多个应用系统中,登录用户只需要登录验证一次就可以访问所有相互信任的应用系统,Redis Session共享是实现单点登录的一种方式.本文是通过Spring Boot框架集成Re ...
- Spring Boot从入门到精通(九)整合Spring Data JPA应用框架
JPA是什么? JPA全称Java Persistence API,是Sun官方提出的Java持久化规范.是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中. ...
- Spring Boot 快速入门
Spring Boot 快速入门 http://blog.csdn.net/xiaoyu411502/article/details/47864969 今天给大家介绍一下Spring Boot MVC ...
- Spring Boot快速入门(二):http请求
原文地址:https://lierabbit.cn/articles/4 一.准备 postman:一个接口测试工具 创建一个新工程 选择web 不会的请看Spring Boot快速入门(一):Hel ...
随机推荐
- java 日期增加
import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public cl ...
- redis实现排行榜功能
目录 加入排行榜 操作排行榜 redis的zset可以很方便地用来实现排行榜功能,下面简单介绍python如何使用redis实现排行榜功能 加入排行榜 获取redis实例 import redis m ...
- BZOJ 2119: 股市的预测 (Hash / 后缀数组 + st表)
转博客大法好 自己画一画看一看,就会体会到这个设置关键点的强大之处了. CODE(sa) O(nlogn)→1436msO(nlogn)\to 1436msO(nlogn)→1436ms #inclu ...
- 【winfrom-Button】设置带图标样式的Button
this.myButton.BackColor = System.Drawing.SystemColors.Control; this.myButton.FlatAppearance.BorderCo ...
- jpa单向一对多
单向一对多是一个类中的一条记录可对应另一个类的多条记录: 比如一个部门可对应多个员工: jpa中的实现步骤: one-to-many的one类中添加一个many类类型的set;比如部门类D ...
- Codeforces 1214 F G H 补题记录
翻开以前打的 #583,水平不够场上只过了五题.最近来补一下题,来记录我sb的调试过程. 估计我这个水平现场也过不了,因为前面的题已经zz调了好久-- F:就是给你环上一些点,两两配对求距离最小值. ...
- 排序学习(learning to rank)中的ranknet pytorch简单实现
一.理论部分 理论部分网上有许多,自己也简单的整理了一份,这几天会贴在这里,先把代码贴出,后续会优化一些写法,这里将训练数据写成dataset,dataloader样式. 排序学习所需的训练样本格式如 ...
- linux端口释放
查看linux连接端口范围 cat /proc/sys/net/ipv4/ip_local_port_range 调低端口释放等待时间 echo 20 > /proc/sys/net/ipv4 ...
- SRS之RTMP handshake
1. SrsRtmpServer::handshake 位于 srs_rtmp_stack.cpp. int SrsRtmpServer::handshake() { int ret = ERROR_ ...
- RestAssured
配置MAVEN <dependency> <groupId>io.rest-assured</groupId> <artifactId>rest-ass ...