一、新建一个maven项目
二、打开pom.xml
首先要添加如下两个节点<parent>和<dependencies>
<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>com.zc</groupId>
<artifactId>springboot2.0-helloworld</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--spring-boot-starter-parent 是用来整合常用框架依赖的 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
<!--spring-boot-starter 是springboot整合springMVC web的组件 -->
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
</dependencies>
<build/>
</project>
三、创建一个Contoller
学习第一个注解 @RestController
作用:修饰的类下的所有方法,全部都是返回josn格式
使用传统方式返回json 使用@ResponseBody
所以@RestController = @Controller + @ResponseBody
在微服务情况,基本上都在类上加上@RestController
@RestController
public class FirstController {
@RequestMapping("/index")
public String index() {
return "hello";
}
// 传统方式
@Controller
public class FirstController {
@RequestMapping("/index") // URL地址
@ResponseBody // 让方法返回json格式
public String index() {
return "hello";
}
}
第二个注解 @EnableAutoConfiguration
作用:自动加载pom.xml中的配置,扫包范围:默认为当前类
该方式启动时扫包范围有局限性,所以一般我们提取出启动配置,单独创建一个APP类
并使用第三个注解 @ComponentScan("com.zc.controller")
作用:它在启动时,扫描com.zc.controller包下所有的类
@ComponentScan("com.zc.controller")
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
可以看出@ComponentScan比@EnableAutoConfiguration扫描的范围大
但是项目中不止一个包怎么办?
解决1: @ComponentScan(basePackage={"com.zc.controller","com.zc.controller2"})
可以配置多个,但是很low
解决2: 第四个注解@SpringBootApplication 扫包范围:在同级包和当前包下
此外,@SpringBootApplication = @EnableAutoConfiguration + @ComponentScan
所以我们用第四个注解就行了
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
小结:@EnableAutoConfiguration 扫包范围:默认为当前类
@ComponentScan 扫包范围:包
@SpringBootApplication 扫包范围:在同级包和当前包下
另:静态资源都放在src/test/resources的static目录下,注意,访问的时候直接访问静态资源就可以了,不需要加路径src/test/resources/static
src/test/resources/static 只是一个规范,表明该文件夹下是静态资源