1、JDK 5.0 在 java.lang.reflect 包下新增了Annotation 接口, 該接口表明程序中能夠接受註解。java
當一個Annotation 類型被定義爲運行時Annotation 後, 該註釋纔是運行時可見, 當 class 文件被載入時保存在 class 文件中的 Annotation 纔會被虛擬機讀取。mysql
以前咱們的一些配置信息都寫在xml文件中,而後在經過解析XML文件,拿到咱們想要的數據。有了Annotation 以後,它能夠代替XML。咱們能夠給程序加註解來配置一些信息,就像使用XML同樣,配置了數據以後,還須要解析註解拿到咱們配置的數據。sql
代碼(定義一個註解):url
//在定義註解時,必定不要忘了要配置這個元註解,若是不加,再取註解數據時,程序定報空指針 (這個元註解是將DbInfo這個註解標示爲運行時註解) @Retention(RetentionPolicy.RUNTIME) public @interface DbInfo { String url(); String username(); String password(); }
代碼(爲程序加入註解,在讀取註解數據):spa
public class JdbcUtils { @DbInfo(url="jdbc:mysql://localhost:3306/test",username="root",password="root") public static Connection getConnection() throws SecurityException, NoSuchMethodException{ //經過反射來解析註解 Class clazz = JdbcUtils.class; Method method = clazz.getMethod("getConnection", null); //拿到註解以後,就能夠獲取註解的數據了 DbInfo info = method.getAnnotation(DbInfo.class); System.out.println(info.url());//jdbc:mysql://localhost:3306/test System.out.println(info.username());//root System.out.println(info.password());//root return null; } public static void main(String[] args) throws SecurityException, NoSuchMethodException { getConnection(); } }