Springboot的优点和搭建
Springboot优点总结
1.谈到 Spring Boot,就让我们先来了解它的优点 。 依据官方的文档, Spring Boot 的优点如下:
–创建独立的 Spring 应用程序 ;
–嵌入的 Tomcat 、 Jetty 或者 Undertow,无须部署 WAR 文件:
–允许通过 Maven 来根据需要获取 starter;
–尽可能地自动配置 Spring;
–提供生产就绪型功能,如指标、健康检查和外部配置;
–绝对没有代码生成,对 XML 没有要求配置 。
这段描述告诉我们,首先 Spring Boot 是一个基于 Spring 框架搭建起来的应用,其次它会嵌入Tomcat 、 Jetty 或者 Undertow 等服务器 ,并且不需要传统 的 WAR 文件进行部署 ,也就是说搭建 SpringBoot 项目并不需要单独下载 Tomcat 等传统的服务器:同时提供通过 Maven (或者 Grandle )依赖的starter ,这些 starter 可以直接获取开发所需的相关包 ,通过这些 starter 项目就能以 JavaApplication 的形式运行 Spring Boot 的项目,而无须其他服务器配置:对于配置, Spring Boot 提供 Spring 框架的最大自动化配置,大量使用自动配置,使得开发者对 Spring 的配置尽量减少:此外还提供了 一些监测、自动检测的功能和外部配置,与此同时没有附加代码和 XML 的配置要求 。
约定优于配置,这是 Spring Boot 的主导思想 。 对于 Spring Boot 而言 ,大部分情况下存在默认配置 ,你甚至可 以在没有任何定义的情况下使用 Spring 框架,如果需要自定义也只需要在配置文件配置一些属性便可以,十分便捷 。 而对于部署这些项目必需的功能, Spring Boot 提供 starter 的依赖,4 第才章 Spring Boot 来临
例如, spring-boot-starter-web 捆绑了 Spring MVC 所依赖的包, spring-boot-starter-tomcat 绑定了内嵌的 Tomcat,这样使得开发者能够尽可能快地搭建开发环境,快速进行开发和部署,这就是 Spring Boot的特色 。
2.Springboot的搭建
-
问题描述
springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础上,对已有的maven gav进行了封装而已,今天用最简单的代码快速入门springboot。 -
解决方案
强烈推荐大家使用Idea的付费版(破解感谢下蓝宇),Idea对maven、git等插件支持的更加好。
使用idea自带的spring Initializr(实际调用的是springboot的官网上的initializr),快速新建springboot项目。
2.1 新建Springboot项目
(1)file->new->project
(2)点击next(第一个)
创建springboot项目(因为连接的国外的网站,next有时会几秒的延迟),将两个值改成自己的配置,Group:com.laowang ,Artifact:sptest,其他可以不用动,点击ok
(3)点击next(第二个)
选择web-》spring web starter
(4)点击next(第三个)
不用做修改,直接finish
新建springboot项目已经完成。
2.2 springboot默认生成三个文件
默认生成的三个文件
2.2.1. pom.xml
<?xml version="1.0" encoding="UTF-8"?>
4.0.0
org.springframework.boot
spring-boot-starter-parent
2.1.4.RELEASE
com.laowang
sptest
0.0.1-SNAPSHOT
sptest
Demo project for Spring Boot
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
重点就一个gav:spring-boot-starter-web,其他可以删除。
2.2.2 application.properties
该文件默认为空,springboot的默认启动端口号:8080,可以在改文件修改。
2.2.3 启动类文件(SptestApplication.java)
package com.laowang.sptest;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SptestApplication {
public static void main(String[] args) {
SpringApplication.run(SptestApplication.class, args);
}
- 1
- 2
- 3
}
重点是标签:@SpringBootApplication
2.3 验证springboot
在com.laowang.sptest报下新建ctroller包,并新建类:HelloController
package com.laowang.sptest.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
@Controller
public class HelloController {
@RequestMapping("/")
@ResponseBody
public String getHello() {
return "hello";
}
- 1
- 2
- 3
- 4
- 5
}
服务正常启动。
2.4 重点说明
需要说明两点:
(1)类文件要放在跟启动类同级或者下一目录下,本项目为:com.laowang.sptest包下面。因为springboot默认扫描加载启动类同级或者下级目录的标签类(@RestController,@Service ,@Configuraion,@Component等),假如真需要加载其他目录的标签类,可以通过在启动上配置标签@ComponentScan(具体包)来进行扫描加载。
(2)资源文件默认放到resources下面,templates默认放的是动态文件,比如:html文件,不过要搭配thymeleaf 使用(pom文件中需新加gav)。
其他也没什么了,springboot主要是通过spring提供的多个starter和一些默认约定,实现项目的快速搭建。