Spring Boot註解

以前面試被問了不少註解問題。。因此如今來個積累。。html

Spring Boot註解

@RestController:@ResponseBody+@Controller,把函數的返回值直接填入http響應體中,是REST風格的控制器。面試

@ResponseBody:表示該方法的返回結果直接寫入http response body中,用於構建RESTful的api。通常配合@RequestMapping一塊兒使用。spring

@RequestMapping:用來處理請求地址映射的註解,可用於類或方法上。用於類上,表示類中的全部響應請求的方法都是以該地址做爲父路徑。數據庫

@RequestMapping("/test")
@ResponseBody
public String test() {
    return "ok";
}複製代碼

@Controller:在Spring中由控制器負責將用戶發來的url請求轉發到對應的服務接口(Service),註解通常在類上,配合@RequestMapping使用。api

@Controller
public class LoginController {
    @RequestMapping(value="/login", method="RequestMethod.POST")
    public String login() {
        return "login successfully";
    }
}複製代碼

@SpringBootApplication:@ComponentScan、@Configuration和@EnableAutoConfiguration註解。springboot

//啓動Spring Boot項目
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}複製代碼

@ComponentScan:自動掃描當前包及子包下全部類,找到標識了須要裝配的類自動裝配到spring的bean容器中。bash

@Configuration:表示該類做用springboot配置文件類。app

@EnableAutoConfiguration:表示程序啓動時,自動加載springboot默認的配置。框架

@Autowired:自動導入依賴的bean。函數

@PathVariable:獲取參數。

JPA註解

@Entity:@Table(name=""):代表這是一個實體類。通常這兩個註解一塊兒使用,可是若是表名和實體類名相同,@Table能夠省略。

@Column:若是字段名與列名相同,可省略。

@Id:表示該屬性爲主鍵。

@Transient:表示該屬性並不是一個到數據庫表的字段的映射,ORM框架將忽略該屬性。

@JoinColumn(name="userId"):一對一:本表中指向另外一個表的外鍵。一對多:另外一個表指向本表的外鍵。

@OneToOne、@OneToMany、@ManyToOne:對應hibernate配置文件中的一對一,一對多,多對一。

Spring Boot懶加載

通常狀況下,Spring容器在啓動時會建立全部的bean對象,使用@Lazy註解能夠將bean對象的建立延遲到第一次使用bean的時候。

@Component
@Lazy
public class test {
    public test() {
        System.out.println("Lazy");
    }
    public void sayLazy() {
        System.out.println("I am Lazy");
    }
}複製代碼


參考資料:

SpringBoot註解大全

相關文章
相關標籤/搜索