创建maven工程
建立一个普通的的maven工程,不使用骨架
为了打包方便,最好和环境中jdk版本保持一致
添加起步依赖
SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
SpringBoot要集成SpringMVC进行controller的开发,所以项目要导入web的启动依赖
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
如果出现错误:-Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.1.RELEASE
在pom.xml中将仓库改成:
<repositories><!-- 代码库 -->
<repository>
<id>maven-ali</id>
<url>http://central.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
<checksumPolicy>fail</checksumPolicy>
</snapshots>
</repository>
</repositories>
SpringBoot工程热部署
代码实时修改实时生效:代码修改之后就不需要重启服务器就可以生效了
1、pom.xml中添加配置
<!--热部署配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2、IDEA中设置自动编译
然后 Shift+Ctrl+Alt+/,选择Registry
编写SpringBoot的引导类
package com.itcast;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @author OceanStar
* @create 2019-12-02 15:30
* 要通过SpringBoot提供的引导类起步SpringBoot才可以进行访问
* @SpringBootApplication 来标注一个主程序类,说明这是一个Spring Boot应用
*/
@SpringBootApplication // 标注SpringBoot的启动类
public class MySpringBootApplication {
// java主程序入口
public static void main(String[] args) {
// 表示运行SpringBoot的启动类,参数为SpringBoot启动类的字节码对象
SpringApplication.run(MySpringBootApplication.class);
}
}
编写Controller
在引导类MySpringBootApplication同级包或者子级包中创建QuickStartController
package com.itcast.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @author OceanStar
* @create 2019-12-02 15:37
*/
@Controller
public class QuickStartController {
@RequestMapping("/quick")
@ResponseBody
public String quick(){
return "SpringBoot 您好";
}
}
测试
运行,控制台日志如下:
通过日志发现,Tomcat started on port(s): 8080 (http) with context path ‘’ tomcat已经起步,端口监听8080,web应用的虚拟工程名称为空
打开浏览器访问url地址为:http://localhost:8080/quick
部署【插件下载不下来,待研究】
HelloSpringBoot\pom.xml:
<!--这个插件,可以将应用打包成一个可执行的jar包-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring‐boot‐maven‐plugin</artifactId>
</plugin>
</plugins>
</build>
原理探究
版本仲裁中心
父项目进行版本仲裁
场景启动器
SpringBoot将所有的功能场景都抽取出来,做成一个个的starters(启动器),只需要在项目里面引入这些starter 相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器
主配置类