spring boot學習 初級入門

學習時只關心技術,開發時只關心業務
spring boot 
習慣優於配置原則
spring 簡史:第一階段:xml配置 第二階段:註解配置 第三階段:java配置
註解配置和xml配置哪個更好? 應用的基本配置(如數據庫配置)用xml,業務配置使用註解
spring 是模塊化的,意味着可以只使用需要的spring模塊


使用@ComponentScan(包名)註解一個類時,該類爲配置類(此類裏面可以什麼都不用寫),該類會自動掃描包名下所有的@Service,@Component,@Repository,@Controller的類,並把它們註冊爲Bean
當在別的地方需要使用這些Bean時,這樣使用:
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(配置類的類名.class);
context.getBean(要使用的Bean的類名.class);
context.close();


java配置是通過@Configuration和@Bean來實現的
@Configuration聲明當前類時一個配置類,相當於一個Spring配置的xml文件。
@Bean註解在方法上,聲明當前方法的返回值是一個Bean。


Bean的初始化和銷燬
@PostConstruct註解註釋的方法,會在Bean的初始化完成之後執行,一般用來註釋init方法
@PreDestory註解註釋的方法,會在Bean銷燬之前執行,一般用來註釋destory方法


Filter和Interceptor的區別
Filter是Servlet容器支持的,而Interceptor是spring容器內的,是Spring框架支持的。我覺得這是根本的區別,很多其他的區別歸根到底都是這個原因導致的,
比如Filter只能在web項目中使用,而Interceptor既可以在web項目中使用,也可以在Application和Swing中使用;
Filter無法使用到Spring中的任何資源,如Bean,事物,但是Interceptor則都可以使用,因爲它是Spring框架支持的;
Filter只能在Servlet前後起作用,但是Interceptor可以深入到方法的前後,異常的拋出前後,具有更大的彈性,所以Spring框架的項目中,應該優先使用Interceptor。


爲什麼Spring boot框架中的Appliaction類要放在最外層目錄?
個人理解:因爲Application類含有@SpringBootApplication註解,這是一個組合註解,相當於@Configuration,@EnableAutoConfiguration和@ComponentScan
三個註解的組合,@ComponentScan註解是用來掃描包下的所有組件的,默認的搜索路徑是該註解註釋的類所在的包,所以Application要是想要掃描到整個項目中的組件,就只能放在最外層,否則放在任意一個包下,都只能掃描到該包下的組件。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章