1. 程式人生 > 其它 >反射獲取類及類中的方法和方法的註解

反射獲取類及類中的方法和方法的註解

springboot專案在啟動時會載入類,這個時候我們自定義一個類,讓他去實現BeanPostProcessor,重寫postProcessBeforeInitialzation()方法,我們可以按照我們的需要獲取我們需要的類物件。具體如下:

  • 獲取類物件,暫記為 cll.

通過物件.getClass()方法返回物件的類物件。

  • 獲取物件上面的註解

註解類 = cll.getAnnotation(註解.class);

  • 獲取物件的方法
    • 獲取類中所有的方法
      Method[] methods = cll.getDeclaredMethods();
  • 獲取方法上面的註解
    • GetMapping getRequestMothed = (GetMapping) method.getAnnotation(GetMapping.class);
  • 根據傳入的註解和屬性,獲取對應的屬性值
    •  獲取方法上的所有註解
      • nnotation[] annotations = method.getAnnotations();
    •  通過anno.annotationType().toString()獲取註解的全類名
    • permissionValue = (String[]) anno.annotationType().getMethod(傳入註解的屬性).invoke(anno);
    • 例子如下: