java開發常用註解

自定義註解相關:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)

java驗證:
@NotEmpty 用在集合類上面,值不爲null且不爲空
@NotBlank 用在String上面,不爲空字符串
@NotNull 用在基本類型上,不爲null
@size (min=3, max=20, message=“用戶名長度只能在3-20之間”)
@Length(min = 5, max = 20, message = “用戶名長度必須位於5到20之間”)
@Email(message = “比如輸入正確的郵箱”)
@NotNull(message = “用戶名稱不能爲空”)
@Max(value = 100, message = “年齡不能大於100歲”)
@Min(value= 18 ,message= “必須年滿18歲!” )
@AssertTrue(message = “bln4 must is true”)
@AssertFalse(message = “blnf must is falase”)
@DecimalMax(value=“100”,message=“decim最大值是100”)
@DecimalMin(value=“100”,message=“decim最小值是100”)
@NotNull(message = “身份證不能爲空”)
@Pattern(regexp="^(\d{18,18}|\d{15,15}|(\d{17,17}[x|X]))$", message=“身份證格式錯誤”)

mybatis相關:
@transient 不關聯數據庫
@JsonIgnore 不返回json
@DateTimeFormat 校驗入參
@JsonFormat 校驗出參
@Id主鍵
@table表名
@Param dao層傳遞參數

spring相關
1、聲明bean的註解
@Component 組件,沒有明確的角色
@Service 在業務邏輯層使用(service層)
@Repository 在數據訪問層使用(dao層)
@Controller在展現層使用,控制器的聲明(C)

2、注入bean的註解
@Autowired:由Spring提供
@Resource:由JSR-250提供

3、java配置類相關注解
@Configuration 聲明當前類爲配置類,相當於xml形式的Spring配置(類上)
@Bean 註解在方法上,聲明當前方法的返回值爲一個bean,替代xml中的方式(方法上)
@ComponentScan 用於對Component進行掃描,相當於xml中的(類上)
@WishlyConfiguration 爲@Configuration與@ComponentScan的組合註解,可以替代這兩個註解

4、切面(AOP)相關注解
@Aspect 聲明一個切面(類上)
使用@After、@Before、@Around定義建言(advice),可直接將攔截規則(切點)作爲參數。
@After 在方法執行之後執行(方法上)
@Before 在方法執行之前執行(方法上)
@Around 在方法執行之前與之後執行(方法上)
@PointCut 聲明切點
在java配置類中使用@EnableAspectJAutoProxy註解開啓Spring對AspectJ代理的支持(類上)

5、@Bean的屬性支持
@Scope 設置Spring容器如何新建Bean實例(方法上,得有@Bean)
其設置類型包括:
Singleton (單例,一個Spring容器中只有一個bean實例,默認模式),
Protetype (每次調用新建一個bean),
Request (web項目中,給每個http request新建一個bean),
Session (web項目中,給每個http session新建一個bean),
GlobalSession(給每一個 global http session新建一個Bean實例)
@StepScope 在Spring Batch中還有涉及
@PostConstruct 由JSR-250提供,在構造函數執行完之後執行,等價於xml配置文件中bean的initMethod
@PreDestory 由JSR-250提供,在Bean銷燬之前執行,等價於xml配置文件中bean的destroyMethod

6、@Value註解
@Value 爲屬性注入值(屬性上)

9、定時任務相關
@EnableScheduling 在配置類上使用,開啓計劃任務的支持(類上)
@Scheduled 來申明這是一個任務,包括cron,fixDelay,fixRate等類型(方法上,需先開啓計劃任務的支持)

10、@Enable*註解說明
這些註解主要用來開啓對xxx的支持。
@EnableAspectJAutoProxy 開啓對AspectJ自動代理的支持
@EnableAsync 開啓異步方法的支持
@EnableScheduling 開啓計劃任務的支持
@EnableWebMvc 開啓Web MVC的配置支持
@EnableConfigurationProperties 開啓對@ConfigurationProperties註解配置Bean的支持
@EnableJpaRepositories 開啓對SpringData JPA Repository的支持
@EnableTransactionManagement 開啓註解式事務的支持
@EnableTransactionManagement 開啓註解式事務的支持
@EnableCaching 開啓註解式的緩存支持

11、測試相關注解
@RunWith 運行器,Spring中通常用於對JUnit的支持
@ContextConfiguration 用來加載配置ApplicationContext,其中classes屬性用來加載配置類

SpringMVC部分
@EnableWebMvc 在配置類中開啓Web MVC的配置支持,如一些ViewResolver或者MessageConverter等,若無此句,重寫WebMvcConfigurerAdapter方法(用於對SpringMVC的配置)。
@Controller 聲明該類爲SpringMVC中的Controller
@RequestMapping 用於映射Web請求,包括訪問路徑和參數(類或方法上)
@ResponseBody 支持將返回值放在response內,而不是一個頁面,通常用戶返回json數據(返回值旁或方法上)
@RequestBody 允許request的參數在request體中,而不是在直接連接在地址後面。(放在參數前)
@PathVariable 用於接收路徑參數,比如@RequestMapping(“/hello/{name}”)申明的路徑,將註解放在參數中前,即可獲取該值,通常作爲Restful的接口實現方法。
@RestController 該註解爲一個組合註解,相當於@Controller和@ResponseBody的組合,註解在類上,意味着,該Controller的所有方法都默認加上了@ResponseBody。
@ControllerAdvice 通過該註解,我們可以將對於控制器的全局配置放置在同一個位置,註解了@Controller的類的方法可使用@ExceptionHandler、@InitBinder、@ModelAttribute註解到方法上,
這對所有註解了 @RequestMapping的控制器內的方法有效。
@ExceptionHandler 用於全局處理控制器裏的異常
@InitBinder 用來設置WebDataBinder,WebDataBinder用來自動綁定前臺請求參數到Model中。
@ModelAttribute 本來的作用是綁定鍵值對到Model裏,在@ControllerAdvice中是讓全局的@RequestMapping都能獲得在此處設置的鍵值對。

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