一、创建示例
1、创建应用
快速创建,通过idea的项目引导来创建springboot。
2、了解 基本的依赖包
打开pom.xml查看自动引入的 dependency。
spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
作为springboot的parent,控制了groupId是 所有导入的springboot的包的版本号
spring-boot-starter
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
这是springboot的 核心启动器,包含了大量自动配置、日志处理等操作,托管程序运行
spring-boot-starter-test
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
springboot单元测试的依赖启动器,包括了对测试的自动配置等操作
spring-boot-devtools
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
热部署 依赖项,可以通过 编译工具自动编译 或者手动编译,达到不需要重启web 应用,直接部署的效果。
lombok
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
很方便的java工具包能简化java代码,提高开发效率。比如setter、getter方法,有参无参构造函数等。
还有一个 插件:
spring-boot-maven-plugin
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
加入这个插件后,项目可以直接使用maven命令来操作程序,比如可以通过maven package,直接将项目打成jar包等。
3、了解项目的基本结构
4、关键注解
@SpringBootApplication
对于helloworld,程序运行其实依靠的是 spring-boot-starter-web这个最基本的包,
而项目中对于这个包的引用,实际上 只需要靠 main方法所在类上的注解
@SpringBootApplication 。这样就自动完成了 对 spring的配置、监听器的启动等很繁琐的操作。
package com.hkjs.hellospringboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HellospringbootApplication {
public static void main(String[] args) {
SpringApplication.run(HellospringbootApplication.class, args);
}
}
@RestController
表示当前类是一个 mvc 中的Restful API 处理类,可以响应http 请求
@RequestMapping
用来注解controller类中的方法,用来表示通过什么 路径来请求 当前方法
package com.hkjs.hellospringboot.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping(name = "/hello",method = RequestMethod.GET)
public String hello(){
return "hello , world!";
}
}
直接运行后,结果如下:
二、Maven详细介绍
spring boot 也是支持maven,我们到目前通过idea 来创建 spring boot项目,其实结构都是maven结构,所以需要先了解maven。
1、maven是什么。
maven是一个项目构建工具,通过maven可以统一项目构建后的目录结构,另外maven还项目的全生命流程都提供支持。
1、用来管理整个项目的生命周期的,比如刚才提到的通过maven命令
mvn complie 来编译
mvn package 来给项目打包,
2、可以依赖包管理
前面说的pom.xml 就是maven的重要组成部分。通过添加依赖项,可以快速的做到在项目中对jar包统一管理。方便使用。
2、安装
从官网上下载: http://maven.apache.org
1、设置JAVA_HOME环境变量,指向JDK安装目录。
2、下载Maven并解压到指定目录。
3、设置M2_HOME环境变量,指向刚才的解压目录。
4、添加M2环境变量,指向Maven的解压目录下的bin目录。
完成后,可以在cmd命令行中验证是否成功:mvn -version。
由于我一直使用 IDEA来开发,所以不需要安装插件,如果是Eclipse的话,需要安装插件
3、配置
其实IDEA本身已经支持了Maven,在开发工具中,可以打开maven的窗口,可以通过这个来管理maven项目。
通过这个窗口,可以管理项目的生命周期,可以看到依赖项和插件的导入情况。
可以通过这里来配置maven
点击右上方的按钮,在弹出的窗口中配置。
主要看下 maven的 包保存路径 和 配置文件路径。
Repository :包保存路径,从Remote Repository 下载下来之后,就放在本地路径下。
setting file:
考虑到 直接从国外的repository 中下载会有问题,配置中需要加入镜像
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<mirror>
<id>ibiblio</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
</mirror>
<mirror>
<id>jboss-public-repository-group</id>
<mirrorOf>central</mirrorOf>
<name>JBoss Public Repository Group</name>
<url>http://repository.jboss.org/nexus/content/groups/public</url>
</mirror>
<mirror>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
<!--
<mirror><id>aliyun</id><name>aliyun Maven</name><mirrorOf>*,!cloudera,!spring-releases</mirrorOf><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>
-->
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
</mirrors>
4、基本命令
-v:查询Maven版本
检查maven是否安装成功。
Maven安装完成之后,在命令行输入mvn -v,若出现maven信息,则说明安装成功。
compile:编译
将java源文件编译成class文件
test:测试项目
执行test目录下的测试用例
package:打包
将项目打成jar包
clean:删除target文件夹
install:安装
将当前项目放到Maven的本地仓库中。供其他项目使用
这里通过maven就管理了项目的生命周期。
5、Pom.xml
Maven项目中,最重要的文件了。下面看下 pom 文件的重要组成部分
parent
继承父项目,通过这个 元素,maven项目一般都构建成多模块化,可以通过继承,让子模块很方便导入父项目 内容
modelVersion
POM的版本号。默认就好
groupId
项目的唯一标识
artifactId
项目的标识符,它和group ID一起唯一标识一个构件
packaging
项目的打包方式,由jar、war、pom、ear等模式
version
项目的版本号
name
项目名
url
项目介绍文档路径
description
项目描述
prerequisites
项目的前提,必要条件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
dependencies 是很重要的依赖项的意思。其实就是项目要导入的包,maven一大重要特性就是可以通过repository来方便各个依赖包的导入
通过 grouppId 和 artifactId来唯一指定特定的包。
<dependencyManagement>
<dependencies>
<dependency>
......
</dependency>
</dependencies>
</dependencyManagement>
dependencyManagement 和 dependencies的区别就是 这里只是声明的,让子项目继承用的,子项目一旦继承,不需要版本号,直接使用这里的版本号。
但是注意的是,这里只是声明,不会真正导入,子项目中引用了才会导入
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
这里是插件
另外还有个比较重要的 pluginManagement 和 之前的 dependencyManagement类似。
三、配置文件介绍
1、格式
springboot 支持两种格式的配置文件 .yml 和 .properties 默认是 .properties,如果目录下 同时存在 .properties和.yml那么 使用.properties
2、位置
顺序如下
1、config目录(项目根目录中config目录下)
2、项目根目录
3、项目resources目录中config目录下
4、项目的resources目录下
3、语法
yml采用 : 的访问方式 包名中的_ 改用骆驼命名来实现。:后要加一个空格。
默认示例:
server:
port: 8082