作為一個(gè)超級(jí)小白衍腥,使用SpringBoot的感受就是SpringBoot的很多東西不明覺厲,雖然不是很熟悉纳猫,但是還是感性的體會(huì)到了很方便婆咸,比如如果缺少依賴的時(shí)候,會(huì)提醒你且會(huì)自動(dòng)引入续担,且有很多注解可以拿來(lái)用擅耽。以前從來(lái)沒接觸過這么多注解,所以就總結(jié)一下物遇。
依賴注入
在查找資料的過程中,發(fā)現(xiàn)有些注解和依賴注入有關(guān)憾儒,什么是依賴注入询兴?以前使用一個(gè)對(duì)象的時(shí)候需要new一個(gè)對(duì)象出來(lái),而且對(duì)象之間存在依賴關(guān)系起趾,B類的對(duì)象可能是A類的屬性诗舰,在A類中new出B對(duì)象,增加了類之間的耦合性训裆。于是眶根,就有了控制反轉(zhuǎn)(IoC)和依賴注入(DI)的概念”吡穑控制反轉(zhuǎn)就是將對(duì)象的實(shí)例化過程交給spring框架來(lái)做属百,依賴注入就是將A對(duì)象所依賴的B對(duì)象以配置文件或注解的形式傳遞給A對(duì)象。
在Spring中变姨,你不需要自己創(chuàng)建對(duì)象族扰,你只需要告訴Spring,哪些類我需要?jiǎng)?chuàng)建出對(duì)象,然后在啟動(dòng)項(xiàng)目的時(shí)候Spring就會(huì)自動(dòng)幫你創(chuàng)建出該對(duì)象渔呵。
在SpringBoot中使用依賴注入的方式很簡(jiǎn)單怒竿,只需要添加相應(yīng)的注解即可。
注解分類
一類是使用Bean扩氢,即Bean拿來(lái)用耕驰,完成屬性、方法的組裝录豺。比如@Autowired , @Resource朦肘,可以通過byTYPE(@Autowired)、byNAME(@Resource)的方式獲取Bean巩检。一般用來(lái)修飾字段厚骗,構(gòu)造函數(shù),或者設(shè)置方法兢哭,并做注入领舰。
一類時(shí)注冊(cè)Bean,@Component , @Repository , @ Controller , @Service , @Configration迟螺,一般修飾類冲秽,這些注解都是把你要實(shí)例化的對(duì)象轉(zhuǎn)化成一個(gè)Bean,放在IoC容器中矩父,等你要用的時(shí)候锉桑,它會(huì)和上面的@Autowired , @Resource配合到一起,把對(duì)象窍株、屬性民轴、方法完美組裝。
常用注解
@Service用于標(biāo)注業(yè)務(wù)層組件
@Controller用于標(biāo)注控制層組件
@Repository用于標(biāo)注數(shù)據(jù)庫(kù)訪問Dao組件
@Component泛指組件球订,當(dāng)組件不好歸類的時(shí)候后裸,我們可以使用這個(gè)注解進(jìn)行標(biāo)注
@Autowired,自動(dòng)注入冒滩,自動(dòng)從spring的上下文找到合適的bean來(lái)注入
@RestController微驶,Spring4之后新加入的注解,原來(lái)返回json需要@ResponseBody和@Controller配合开睡,將調(diào)用的結(jié)果直接返回給調(diào)用者因苹。
@Value:注入Spring boot application.properties配置的屬性的值。
@RequestMapping:提供路由信息篇恒,負(fù)責(zé)URL到Controller中的具體函數(shù)的映射扶檐。@RequestMapping(“/path”)表示該控制器處理所有“/path”的UR L請(qǐng)求。RequestMapping是一個(gè)用來(lái)處理請(qǐng)求地址映射的注解婚度,可用于類或方法上蘸秘。
@GetMapping是一個(gè)組合注解官卡,是@RequestMapping(method = RequestMethod.GET)的縮寫。該注解將HTTP Get 映射到 特定的處理方法上醋虏。
同理PostMapping也是一個(gè)組合注解寻咒,是@RequestMapping(method = RequestMethod.POST)的縮寫。
@PathVariable:獲取url中的數(shù)據(jù)颈嚼。
@ComponentScan 組件掃描毛秘,發(fā)現(xiàn)和組裝一些Bean。
@EnableAutoConfiguration自動(dòng)配置阻课。
@SpringBootApplication:申明讓spring boot自動(dòng)給程序進(jìn)行必要的配置叫挟,這個(gè)配置等同于:@Configuration ,@EnableAutoConfiguration 和 @ComponentScan 三個(gè)配置限煞。
@Data 自動(dòng)生成setter抹恳、getter方法
@Import:用來(lái)導(dǎo)入其他配置類。
@ImportResource:用來(lái)加載xml配置文件署驻。
@Bean:放在方法的上面奋献,而不是類,意思是產(chǎn)生一個(gè)bean,并交給spring管理旺上。
@Inject:等價(jià)于默認(rèn)的@Autowired瓶蚂,只是沒有required屬性;