spring boot(2)[email p
阿新 • • 發佈:2019-01-01
啟動類
package hello;
import org.springframework.boot.*;
import org.springframework.boot.autoconfigure.*;
@SpringBootApplication
public class Run{
public static void main(String[] args) throws Exception {
SpringApplication.run(Run.class, args);
}
}
這個Run.java是一個獨立的spring boot啟動類,這裡不應該有業務功能,上一篇的hello world業務程式碼應該寫在一個單獨的@Controller裡面,和上一篇相比,這裡用@SpringBootApplication
@EnableAutoConfiguration:只是實現自動配置一個功能,具體參考上一篇。 @SpringBootApplication:是一個組合註解,包括@EnableAutoConfiguration及其他多個註解。 在eclipse的程式碼中 按 crtl+左鍵 點選@SpringBootApplication註解可以檢視他的原始碼,如下前四個註解:是元註解,用來修飾當前註解,就像public類的修飾詞,沒有實際功能,如果不打算寫自定義註解,不需要了解 後三個註解:是真正起作用的註解,包括 @SpringBootConfiguration:當前類是一個配置類,就像xml配置檔案,而現在是用java配置檔案,效果是一樣的。下面會詳解。@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) public @interface SpringBootApplication
@EnableAutoConfiguration:上篇已經講了
@ComponentScan:用註解配置實現自動掃描,預設會掃描當前包和所有子包,和xml配置自動掃描效果一樣,@Filter是排除了兩個系統類
@SpringBootConfiguration和@Bean
package hello; import org.springframework.boot.SpringBootConfiguration; import org.springframework.context.annotation.Bean; @SpringBootConfiguration public class Config { @Bean public String hello(){ return "Hello World"; } }
@SpringBootConfiguration:說明這是一個配置檔案類,它會被@ComponentScan掃描到
@Bean:就是在spring配置檔案中聲明瞭一個bean,賦值為hello world,String方法型別就是bean的型別,hello方法名是bean的id
如果是用xml配置檔案來宣告bean,如下圖
<bean id="hello" class="String"></bean>
SampleController.java
package hello;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.*;
import org.springframework.web.bind.annotation.*;
@Controller
public class SampleController {
@Autowired
String hello;
@RequestMapping(value="/")
@ResponseBody
String test(){
return hello;
}
}
把上一篇的hello world業務功能獨立出來,在這裡注入了spring容器中的那個String型別的Bean,並且列印到頁面
執行專案
現在的專案結構如下,共三個檔案,啟動類、配置類、業務類,結構更分明瞭。