springboot常用注釋的講解
1:@Qualifier
@Qualifier 注釋指定注入 Bean 的名稱,這樣歧義就消除了。所以@Autowired 和@Qualifier 結(jié)合使用時,自動注入的策略就從 byType 轉(zhuǎn)變成 byName 了。例子如下:
有一個接口:
public interface EmployeeService { public String getEmployeeById(Long id); }
有兩個實現(xiàn)類:
@Service("service") public class EmployeeServiceImpl implements EmployeeService{ @Override public String getEmployeeById(Long id) { return "0"; } } @Service("service1") public class EmployeeServiceImpl1 implements EmployeeService{ @Override public String getEmployeeById(Long id) { return "1"; } }
controller層調(diào)用service層:
@RestController public class EmployeeInfoControl { @Autowired @Qualifier("service") //括號里面的值是實現(xiàn)類@service時給類取得名字,加上此注解不會報錯 private EmployeeService employeeService; @RequestMapping("/emplayee.do") public void showEmplayeeInfo(){ String employeeById = employeeService.getEmployeeById(1l); System.out.println("employeeById值為"+employeeById); } } //此時會報錯 因為@Autowired // private EmployeeService employeeService; //注入的是service層的接口,此時有兩個實現(xiàn),不知道綁定的是哪個實現(xiàn)。 //此時應(yīng)該在@Autowired下面配合@Qualifier注釋使用,用來說明要綁定的具體是哪個實現(xiàn)類 //如上面所示
2:@RestController
注解在類上,表示這是一個控制層bean。常用于控制層類的前面,是@ResponseBody和@Controller的合集 。
- @ResponseBody:用該注解修飾的函數(shù),會將結(jié)果直接填充到HTTP的響應(yīng)體中,一般用于構(gòu)建RESTful的api,將java對象轉(zhuǎn)為json格式的數(shù)據(jù)。
- @Controller:用于定義控制器類,在spring 項目中由控制器負責將用戶發(fā)來的URL請求轉(zhuǎn)發(fā)到對應(yīng)的服務(wù)接口(service層)。
3:@RequestMapping
提供路由信息,負責URL到Controller中的具體函數(shù)的映射。
4:@SpringBootApplication
該注解用在運行類之上,相當于@EnableAutoConfiguration、@ComponentScan和@Configuration的合集。
- @EnableAutoConfiguration:Spring Boot自動配置(auto-configuration)。
- @ComponentScan:表示將該類自動發(fā)現(xiàn)(掃描)并注冊為Bean,可以自動收集所有的Spring組件,包括@Configuration類。我們經(jīng)常使用@ComponentScan注解搜索beans,并結(jié)合@Autowired注解導(dǎo)入。
- @Configuration:相當于傳統(tǒng)的xml配置文件,如果有些第三方庫需要用到xml文件,建議仍然通過@Configuration類作為項目的配置主類 ——可以使用@ImportResource注解加載xml配置文件。
5:@Import
用來導(dǎo)入其他配置類。
6:@Autowired
自動導(dǎo)入依賴的bean。
7:@Service
注解在類上,表示這是一個業(yè)務(wù)層bean。
8:@Repository
注解在類上,表示這是一個數(shù)據(jù)訪問層bean。使用@Repository注解可以確保DAO或者repositories提供異常轉(zhuǎn)譯,這個注解修飾的DAO或者repositories類會被ComponetScan。
9:@Query
自定義SQL查詢語句
10:@Entity
用在實體類的前面,表示這是一個實體類。
11:@Table(name=“”)
用在實體類的前面,一般和@Entity一起使用,表示該實體類映射數(shù)據(jù)庫中的某張表。
12:@Column
表示實體類的某個屬性映射為表中的某個字段,包含的設(shè)置如下:name:數(shù)據(jù)庫表字段名;unique:是否唯一 ;nullable:是否可以為空 ;Length:長度。
13:@Id
該注釋用在實體類中,寫在哪個屬性的前面,表示該屬性映射到數(shù)據(jù)庫中的字段為主鍵。
14:@GeneratedValue
表示主鍵的生成策略,和@Id一起使用
15:@Transient
表示該屬性并非一個到數(shù)據(jù)庫表的字段的映射,ORM框架將忽略該屬性。如果一個屬性并非數(shù)據(jù)庫表的字段映射,就務(wù)必將其標示為@Transient。
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接
相關(guān)文章
使用自定義注解+springAop實現(xiàn)參數(shù)非空校驗方式
這篇文章主要介紹了使用自定義注解+springAop實現(xiàn)參數(shù)非空校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09Android開發(fā)中Socket通信的基本實現(xiàn)方法講解
這篇文章主要介紹了Android開發(fā)中Socket通信的基本實現(xiàn)方法講解,是安卓上移動互聯(lián)網(wǎng)程序開發(fā)的基礎(chǔ),需要的朋友可以參考下2015-12-12Spring框架開發(fā)IOC兩種創(chuàng)建工廠方法詳解
這篇文章主要介紹了Spring框架IOC兩種創(chuàng)建工廠方法詳解,文中附含詳細的代碼示例分別對靜態(tài)方法和實例方法創(chuàng)建工廠作了簡要的分析2021-09-09Java?Stream函數(shù)式編程管道流結(jié)果處理
這篇文章主要為大家介紹了Java?Stream函數(shù)式編程管道流結(jié)果處理的示例過程解析需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步2022-03-03