1. 程式人生 > >springboot入門---入口類註解@SpringBootApplication解析

springboot入門---入口類註解@SpringBootApplication解析

背景:今天新建立了一個springboot專案,之後怎麼都訪問不了  一直報404  

錯誤現象及描述:


程式碼展示:

測試一:起初直接在啟動類裡邊寫了測試方法進行測試

@SpringBootApplication
public class TestSpringBootApplication {
	@RequestMapping("/")
	public String index(){
		return "hello";
	}
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
}
結果訪問http://localhost:8080/   報404

測試一解決方案:在入口類上邊加上@RestController註解即可

@SpringBootApplication
@RestController
public class TestSpringBootApplication {
	@RequestMapping("/")
	public String index(){
		return "hello";
	}
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
}
測試二:將測試方法寫入另外的包和類中,如下所示,新建包和類
@RestController
public class sss {

	@RequestMapping("/sss")
	public String index(){
		return "hello";
	}

}

包結構如圖所示:



訪問:http://localhost:8080/sss    報404


測試二解決方法:修改入口類的註解為

@SpringBootApplication(scanBasePackages="com.example")
public class TestSpringBootApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
}
特別注意:因為包掃描需要自定義,否則掃描到的好像只是入口類所在的包,或者入口類所在包的下一級,比如,入口類的包名字是com.example.demo,那麼com.example.demo.XXX.xxx都可以被掃描到,但是com.example.xxx就不可以被掃描到。

測試三:因為@SpringBootApplication註解是一個組合註解,底層是有多個註解組成的,其中我們也可以把@SpringBootApplication換成另外三個註解也可以完成專案啟動。

//包掃描
@ComponentScan("com.example")
//元件掃描
@Configuration
//配置控制
@EnableAutoConfiguration
public class TestSpringBootApplication {
	
	public static void main(String[] args) {
		SpringApplication.run(TestSpringBootApplication.class, args);
	}
	
}
其中注意的是:包掃描,也是需要自定義的,否則也是隻掃描到入口類所在的包以及入口類所在包的下一級。

總之,配置包掃描是必不可少的。