目录
一、快速入门
1.创建maven工程
使用idea工具创建一个maven工程,该工程为普通的java工程即可
2.pom.xml文件中添加SpringBoot起步依赖
SpringBoot要求,项目要继承SpringBoot的起步依赖spring-boot-starter-parent
<!--
spring-boot-starter-parent 是当前项目的父依赖
spring-boot-starter-parent 继承 spring-boot-dependencies
spring-boot-dependencies 里定义了很多组件版本号,我们引用对应依赖时,不需要写<version>标签
-->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.9.RELEASE</version>
</parent>
SpringBoot要集成SpringMVC进行Controller的开发,所以项目要导入web的启动依赖
<!--
spring-boot-starter:它是sprigboot的场景启动器,它针对不同场景定义了很多不同的场景启动器
spring-boot-starter-web就是构建web项目,依赖了tomcat、springmvc...
-->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
3.创建SpringBoot引导类
4.创建控制器类HelloController,添加hello方法
5.运行application.java,访问地址http://localhost:8080/hello
二、SpringBoot热部署
1.在pom.xml文件添加热部署依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
2.编译触发热部署
- Eclipse开发工具,直接保存后会自动编译触发热部署
- IDEA开发工具,需要按CTRL+F9
三、把项目打成jar包运行
在pom.xml文件添加一个插件
<!--可以将当前项目打成一个jar包进行运行-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后直接打包
在命令行窗口输入"java -jar xxx.jar"运行
四、SpringBoot静态资源的映射规则
Spring Boot 为 Web 开发提供了 spring-boot-starter-web 启动器作为基本支持,为我们提供了嵌入的Tomcat 以及 Spring MVC 的依赖支持。也提供了很多不同场景的自动配置类,让我们只需要在配置文件中指定少量的配置即可启动项目。自动配置类存储在 spring-boot-autoconfigure.jar 的 org.springframework.boot.autoconfigure 包下。
如:
- SpringMVC配置 : WebMvcAutoConfiguration 和 WebMvcProperties
- JDBC : DataSourceAutoConfiguration 和 DataSourceProperties
webjars资源映射:
通过WebMvcAuotConfiguration.addResourceHandlers() 方法看出,所有"/webjars/**"的请求,都会去
"classpath:/META-INF/resources/webjars/"路径下找对应的资源文件
以jar包的方式引入静态资源方法:在pom.xml文件添加从官网 https://www.webjars.org 上的对应maven坐标
静态资源映射:
在WebMvcAuotConfiguration.addResourceHandlers() 如果不是/webjars/**,所有"/**"的请求都会到这四个路径下找对应的静态资源文件:
- "classpath:/META-INF/resources/"
- "classpath:/resources/"
- "classpath:/static/"
- "classpath:/public/"