spring boot 概念
[微服务系列] Spring SpringMVC SpringBoot SpringCloud 概念, 关系及区别
"越来越多的企业选择使用 spring boot 开发系统, spring boot 牛在什么地方? 难不难学? 心动不如行动, 让我们一起开始学习吧!"
使用 Spring boot , 可以轻松的创建独立运行的程序, 非常容易构建独立的服务组件, 是实现分布式架构, 微服务架构利器. Spring boot 简化了第三方包的引用, 通过提供的 starter, 简化了依赖包的配置.
Spring boot 的优点
轻松创建独立的 Spring 应用程序.
内嵌 Tomcat,jetty 等 web 容器, 不需要部署 WAR 文件.
提供一系列的 "starter" 来简化的 Maven 配置.
开箱即用, 尽可能自动配置 Spring.
spring boot 快速入门
通过构建简单的 REST 应用, 了解 spring boot 的开发基本流程, 验证其简单, 易用特性.
环境要求
Spring Boot 2.0.0.BUILD-SNAPSHOT 要求 Java 8 和 Spring Framework 5.0.2 以上, Maven 3.2 以上或者 Gradle 4.
本文使用 Spring Boot 1.5.9 , Java8 和 Spring Framework 5.0.2.RELEASE 以上, Maven 3.2. 开发工具使用 sping 官方提供的 spring suit tool 3.9.1(STS).
1.File - New - Module
image
2. 选项的是 Spring Initializr(官方的构建插件, 需要联网) , 一定要选择 jdk
image
3. 填写项目基本信息
Group: 组织 ID, 一般分为多个段, 这里我只说两段, 第一段为域, 第二段为公司名称. 域又分为 org,com,cn 等等, 其中
org 为非营利组织, com 为商业组织
. 如阿里, 淘宝 (com.alibaba/com.taobao)
Artifact: 唯一标识符, 一般是项目名称
image
4. 选择包
Spring Initializr 为我们提供了很多的选项, 不同的选项有不同的作用, 在初期我们只需要依赖 Web -> Web 就可以了, 选择好依赖包之后点击 Next->Finish
image
5. 输入项目名
image
6. 目录结构如下
- - src
- -main
- -java
- -package
- #主函数, 启动类, 运行它如果运行了 Tomcat,Jetty,Undertow 等容器
- -SpringbootApplication
- -resouces
- #存放静态资源 JS/CSS/images 等
- - statics
- #存放 html 模板文件
- - templates
- #主要的配置文件, SpringBoot 启动时候会自动加载 application.YAML/application.properties
- - application.YAML
- #测试文件存放目录
- -test
- # pom.xml 文件是 Maven 构建的基础, 里面包含了我们所依赖 JAR 和 Plugin 的信息
- - pom
7.pom.xml 文件的 依赖
因为使用了 Spring Initializr 插件, 所以如下的配置都不需要我们自己去写啦, 需要注意的是版本要选择 RELEASE, 稳定版本 BUG 少
- <?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.kgc</groupId>
- <artifactId>springboot1</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <packaging>jar</packaging>
- <name>springboot1</name>
- <description > 我用的第一个 maven 工程 </description>
- <!-- 版本采用的是最新的 2.0.1.RELEASE
- TODO 开发中请记得版本一定要选择 RELEASE , 因为是稳定版本且 BUG 少 -->
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.0.5.RELEASE</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <properties>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
- <java.version>1.8</java.version>
- </properties>
- <dependencies>
- <!-- 默认就内嵌了 Tomcat 容器, 如需要更换容器也极其简单 -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-Web</artifactId>
- </dependency>
- <!-- 测试包, 当我们使用 mvn package 的时候该包并不会被打入, 因为它的生命周期只在 test 之内 -->
- <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>
- </project>
8. 主函数入口
注意事项: 一个项目中切记不要出现多个 main 函数, 否在在打包的时候 spring-boot-maven-plugin 将找不到主函数 (主动指定打包主函数入口除外...)
- package cn.kgc;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- import org.springframework.Web.bind.annotation.GetMapping;
- import org.springframework.Web.bind.annotation.RestController;
- /* 我的第一个 springboot 程序
- 其中 @RestController 等同于 (@Controller 与 @ResponseBody)*/
- @RestController
- @SpringBootApplication
- public class Springboot1Application {
- public static void main(String[] args) {
- SpringApplication.run(Springboot1Application.class, args);
- }
- @GetMapping("/demo1")
- public String demo1(){
- return "Hello World!";
- }
- }
9. 初窥配置文件
从启动日志中可以发现, SpringBoot 默认的端口是 8080 , 那么如果端口被占用了怎么办呢? 不要慌, 问题不大, 配置文件分分钟解决你的困扰...
修改 application.properties 属性文件
- # 默认的 8080 我们将它改成 9090
- server.port=9090
- # 未定义上下文路径之前 地址是 http://localhost:8080 定义了后 http://localhost:9090 你能在 tomcat 做的事情, 配置文件都可以
- server.servlet.context-path=/springboot1
10. 启动项目, 查看控制台输出
SpringBoot 启动的时候我们可以看到控制台如下内容, 可以在在 resouces 目录下添加指定命名的的文件类型有. txt,.jpg,.gif,.jpeg 等等
image
image
本文原创作者: 唐亚峰
本文原创链接: http://blog.battcn.com/2018/04/22/springboot/v2-config-properties/
来源: http://www.jianshu.com/p/e97cd06c59fe