Spring學習之路-註解(隨時更新)

1 Retention註解 Retention(保留)註解說明,這種類型的註解會被保留到那個階段. 有三個值:
(1)RetentionPolicy.SOURCE —— 這種類型的Annotations只在源代碼級別保留,編譯時就會被忽略。
(2)RetentionPolicy.CLASS —— 這種類型的Annotations編譯時被保留,在class文件中存在,但JVM將會忽略。
(3)RetentionPolicy.RUNTIME —— 這種類型的Annotations將被JVM保留,所以他們能在運行時被JVM或其他使用反射機制的代碼所讀取和使用.
2 Documented 註解
Documented 註解表明這個註解應該被 javadoc工具記錄. 默認情況下,javadoc是不包括註解的. 但如果聲明註解時指定了 @Documented,則它會被 javadoc 之類的工具處理, 所以註解類型信息也會被包括在生成的文檔中. 示例6進一步演示了使用 @Documented:
3 Target:定義註解的作用目標
(1)@Target(ElementType.TYPE) //接口、類、枚舉、註解。
(2)@Target(ElementType.FIELD) //字段、枚舉的常量
(3)@Target(ElementType.METHOD) //方法
(4)@Target(ElementType.PARAMETER) //方法參數
(5)@Target(ElementType.CONSTRUCTOR) //構造函數
(6)@Target(ElementType.LOCAL_VARIABLE)//局部變量
(7)@Target(ElementType.ANNOTATION_TYPE)//註解
(8)@Target(ElementType.PACKAGE) ///包
4
(1)@scope 作用範圍
(2) @NotEmpty 用在集合類上面
(3) @NotBlank 用在String上面
(4) @NotNull 用在基本類型上
5 Swagger註解:
(1)@Api:修飾整個類,描述Controller的作用。
(2)@ApiOperation:描述一個類的一個方法,或者說一個接口。
(3)@ApiParam:單個參數描述
(4)@ApiModel:用對象來接收參數
(5)ApiProperty:用對象接收參數時,描述對象的一個字段
(6)@ApiResponse:HTTP響應其中1個描述
(7)@ApiResponses:HTTP響應整體描述
6 java.lang下面的三個註解
(1)@Override表示重寫(當然不寫也可以)。
(2)@Deprecated是這個方法或類不再建議使用
(3)@SuppressWarnings 批註允許您選擇性地取消特定代碼段(即,類或方法)中的警告。
擴展:方法重載(Overloading)和方法重寫(Overriding)都是多態性的表現
7 SpringAop
(1) @Before 是在所攔截方法執行之前執行一段邏輯。
(2)@After 是在所攔截方法執行之後執行一段邏輯。
(3)@Around 是可以同時在所攔截方法的前後執行一段邏輯
8 @ComponentScan 掃描帶有Component註解的類,可以通過basePackageClasses屬性指定掃描的類,可以同basePackages屬性執行掃描的包
9 @Inherited表明自動繼承
10 @SpringBootApplication:@Configuration + @EnableAutoConfiguration + @ComponentScan。
(1)@Configuration和@bean一起使用。@bean註解告訴spring,一個帶有@bean註解的方法將返回一個對象,該對象應該被註冊爲spring應用程序中的bean。@Configuration註解標識的類,可以使用springIOC容器作爲bean定義的來源。
@name和@bean用法基本上相同,有很小的區別。
(2)@EnableAutoConfiguration:能夠自動配置spring的上下文,試圖猜測和配置你想要的bean類,通常會自動根據你的類路徑和你的bean定義自動配置。
(3)@ComponentScan:會自動掃描指定包下面全部標有@Component的類,註冊成爲bean,當然包括@Service、@Repository、@Controller。
註冊Bean@Component 、@Repository、@ Controller、@Service 、@Configration這些註解都是把你要實例化的對象轉化成一個Bean,放在IoC容器中,等你要用的時候,它會@Autowired , @Resource配合到一起,把對象、屬性、方法完美組裝。
11 @Autowied、@Resource、@Inject注入bean

12 @EnableDiscoveryClient
13 @EnableAsync
14 @EnableScheduling

15 @profile:指明某個bean在什麼環境下創建,沒有指明@profile的bean會被直接創建。
16 @Conditional:它可以用到帶有@Bean註解的方法上。 如果給定的條件計算結果爲true, 就會創建這個bean
17 @Qualifier(”iceCream“):識別BeanID爲iceCream的bean
18 @Primary:多個實現類選擇最優先的實現類。
19 @DeclareParents(value=”,defaultImpl=)。value指定被引入的Bean類型,defaultImpl指定引入接口的實現。AOP引入新功能時使用。
20 請求相關的註解
(1)@requestMapping:用來處理請求地址的註解,可以用於方法和註解上。
(2)@requestParam:獲取請求中的參數,可以指定參數的名字,如果不指定必須和請求名字相同。獲取參數中的name屬性,請求中必須存在這個name屬性。
@RequestMapping(value = “/main”,method = RequestMethod.GET)
public String home(@RequestParam(“name”) String name) {
System.out.println(“home++++++++++++++++++”+name);
return “home”;
(3)@PathVariable:可以將url中佔位符綁定到控制器中的入參中。(2)(3)兩個一個是獲取url中參數,一個是獲取佔位符。
/home/rqParam?name=lucas 在控制器中用@RequestParam獲取
/home/rqPV/123 在控制器用@PathVariable獲取
(4)@requestbody接收一個json對象的字符串。

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