SpringBoot部署及代码演示
2019-11-24 本文已影响0人
喵星人ZC
一、环境及版本
SpringBoot版本:2.1.4
JDK:1.8
Maven:3.3.9
二、IDEA的POM依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
三、简单的Hello代码
1、SpringBoot的引导类编写(入口)
package com.soul.java.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloSpringApplication {
public static void main(String[] args) {
SpringApplication.run(HelloSpringApplication.class);
}
}
2、Hello Controller
package com.soul.java.springboot;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/hello")
public String hello() {
return "Hello Spring Boot";
}
}
3、启动引导类进行Web访问
image.png
三、查看@SpringBootApplication注解的源码
@SpringBootApplication由以下三个注解组成
- @SpringBootConfiguration 配置项
- @Configuration
- @EnableAutoConfiguration 自动配置
- @AutoConfigurationPackage 自动配置包
- @ComponentScan 组件扫描
在@AutoConfigurationPackage注解中会根据引导类(标注了@SpringBootApplication的类 )往上找到包名,然后SpringBoot会去加载此包名下的Controller等信息。如果Controller不是写在此包下面,会访问不到。
我们在AutoConfigurationPackages.java的129行打上断点
image.png
然后Debug模式运行,鼠标选中以下代码,右键选择Evaluate Expression
new PackageImport(metadata).getPackageName()
image.png
最后选择计算(Evaluate)会得到包名
image.png
我们所有的SpringBoot代码必须写在此包名下,否则会识别不到!