解析Annotation(註解) 信息

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();
	}
	
}
相關文章
相關標籤/搜索