Java註解的繼承

註解繼承的說明

一、首先要想Annotation能被繼承,須要在註解定義的時候加上@Inherited,而且若是要被反射應用的話,就須要還有個事@Retention(RetentionPolicy.RUNTIME)標識html

二、JDK文檔中說明的是:只有在類上應用Annotation才能被繼承,而實際應用結果是:除了類上應用的Annotation能被繼承外,沒有被重寫的方法的Annotation也能被繼承;java

三、當方法被重寫後,Annotation不會被繼承app

四、Annotation的繼承不能應用在接口上代理

Spring事務註解@Transactional

@Transactional 能夠做用於接口、接口方法、類以及類方法上。可是 Spring 小組建議不要在接口或者接口方法上使用該註解,由於這隻有在使用基於接口的代理時它纔會生效。另外, @Transactional 註解應該只被應用到 public 方法上,這是由 Spring AOP 的本質決定的(從上面的Spring AOP 事務加強能夠看出,就是針對方法的)。若是你在 protected、private 或者默承認見性的方法上使用 @Transactional 註解,這將被忽略,也不會拋出任何異常。htm

SpringMVC的@RequestMapping註解

 使用反射會發現並無把@RequestMapping繼承過來,可是子類能享有它所帶來的的效果,可是若是父類爲接口則無效,由於接口能夠多實現,類是單繼承blog

 

 

參考資料繼承

  http://www.javashuo.com/article/p-qstdumlo-gk.html接口

  https://stackoverflow.com/questions/4745798/why-java-classes-do-not-inherit-annotations-from-implemented-interfaces事務

 

 

 

部分原文連接:https://zxmsdyz.iteye.com/blog/1974249文檔

相關文章
相關標籤/搜索