首页 Java基础复习笔记12Java自定义注解Annotation的使用

Java基础复习笔记12Java自定义注解Annotation的使用

举报
开通vip

Java基础复习笔记12Java自定义注解Annotation的使用 1 / 10 Java������ 12Java�� � Annotation� � �� Eamil:suhuanzheng7784877@163.com 1. �� � JDK1.5� � ���� �� � ����� ��� ��� �� � � ��� fffi flffi EJB3.0 � �� EJB2.X � �!" #$% � &'( )*� � �+,-./ � 01 -.�2� �34 � �5 678�/9 ...

Java基础复习笔记12Java自定义注解Annotation的使用
1 / 10 Java������ 12Java�� � Annotation� � �� Eamil:suhuanzheng7784877@163.com 1. �� � JDK1.5� � ���� �� � ����� ��� ��� �� � � ��� fffi flffi EJB3.0 � �� EJB2.X � �!" #$% � &'( )*� � �+,-./ � 01 -.�2� �34 � �5 678�/9 : � JavaBean; 2�<= �2�> ? �2� ��@A�- B Sun � JPACD � EJB3.X E F GH IJK #$L �MNO � � P! #$ % QRST�UV �WXY Z � [\]^ -. _`a Ubcd Java � e � #f g � hhi Struts / Spring / Hibernatej U ; �k 4lmno� SSH p Rq �r 2 ]^ -. _s tu v Java w H U � xy z /{|�}~ $ d�2€n‚-.ƒ„…‚…,/ CD /†‡/ 10�ˆ‰�-. Ł‹ �Œ XMLŽ ‘’“�” • hh "–—˜™"–š › � 2. � ‡œ žŸ 2� �  ¡ ¢ JPA / EJB / Spring ^ -.££ ¤¥ ” ff¦ Ł§¨© % qnª« � [¬ ��� ­ ¡ ® � ‡œ � ¯ � � � ¯ ” ff � ‡œ� � 34° ff 7±²³�´µ‚ 5 package annotation; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * ¶· * * @author Administrator */ @Retention(RetentionPolicy.RUNTIME) 2 / 10 public @interface Test { String isAop() default "false"; } ff¸¹º @interface ‡œ7± »¼ �” ff @interface ¸¹º �½¾�¿ ` ; � ÀÁT  à � java.lang.annotation.Annotation ÁT� String isAop() default "false"; [ÄÅ 1Æ�¿ ` ; � H Test L € � Ç 2 È É � isAop � Ê È �ËÌ �º ÍÎ ËÌ�Ï fi Д ff �ÑҀ � Ó –Ô � � ¯ Շ ¦¸ � È Ö� ¡ × Ï fi ÐRÕ‡Ö � ØflÖ � false @Retention(RetentionPolicy.RUNTIME) [ÄÅ 1Æd” ff À Ë� Ł‹ ÖÙtÚÛÜ�Ï fi ÐÝÞÑ ßà � áâ 34 ; ‚ 55 Ï fi Ð�” ff package use; import annotation.Test; import annotation.TestImpl.TestProcess; @Test(isAop = "true") public class UseTest { /** * @param args * @throws ClassNotFoundException */ public static void main(String[] args) throws ClassNotFoundException { TestProcess.process("use.UseTest"); } } H Ï fi Ðã ffL H Ë UseTest ¾” ff � @Test(isAop = "true") �ä䇜� 3 / 10 ; i å æç èé¬ �êë �� ì � e 2 ]í  _ � � ì Ž � á �± •î ¢]ï ® Hð _ � êë� [ÄÅñ òó�� ï  ¦ô ž 7± � Hõ �ö2 ï  ; i÷ � Ê �Ë � q Ú [ÄÅ �bc� r ø0R0êë� è � ~~~~ ±ùÆ w Rú j û° 55� ¯ � ü ýþ p ß ��Æ w� ¢][ ±Û � 2 _� ���Æ w� �° 55� ¾2 è�ð 2 �� �� v � 2 ; ­ ¢][ ± Û � 2 v _� > � ß�� ¢]� �°Ù • � �7��� ð  ��� v _ � [¬ � ü ý ;� i � � È �RúÖ� r ø� �� ; ¦ô ž �� � �� � w Ë� � r ø� w Ë ; � �� �J��� ��Ô � Java � ß ffAfi‚ �� Ï fi � »Ë� r ø �34 ; ‚ 55 [ ± �� � w Ë� package annotation.TestImpl; import java.lang.annotation.Annotation; public class TestProcess { public static void process(String str) throws ClassNotFoundException { Class clazz = Class.forName(str); Annotation[] annotations = clazz.getAnnotations(); for (Annotation annotation : annotations) { System.out.println(annotation); } } } � ¾� �� ��P²³ � ; � Ó –7± º ÍÎËÉflÚË�ffiûË�ö2 �ö2 � 7±�ó"�� ! "� �˜� ¦¸ Ł‹ �ÝÞ � ¾� "# � × ¡ á @annotation.Test(isAop=true) ¡ × 34” ff �Ï fi Ð1$0 › 7 á @Test public class UseTest { 4 / 10 %%%%%%%% } � ž � isAop & R�'Շ�ÝÞ( × ¡ á @annotation.Test(isAop=false) € � 5 ڔ ff � � ØflÖ false � ¡ × L Annotation & � 2ՇØflÖ �Œ H Ï fi Ð ” ffL U � Õ‡Ö � ) ¥ R :* +,� @Retention(RetentionPolicy.XXXXXX) ¾ â ­Ú� � Ù- �2(.� //  Ù-Ú+,�� class L � ÷/ Ë�ÑÒR0( @Retention(RetentionPolicy.CLASS) // ää H 1$Ù- �+,�� class RÙ- @Retention(RetentionPolicy.SOURCE) // H +,�� class 2 � :* ß ffUffiû Ł‹ @Retention(RetentionPolicy.RUNTIME)  ¡ Override � f $ @Target(ElementType.METHOD) @Retention(RetentionPolicy.SOURCE) public @interface Override { } �� 12 H ” ff% ” ff �ÑÒ ; € � 5 �‚ �ö � �3 � Ù-ÚÝÞ.�  ¡ SuppressWarnings � f $ 5 / 10 @Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE}) @Retention(RetentionPolicy.SOURCE) public @interface SuppressWarnings { String[] value(); } � ¾�R 45 67� U � H +,7±Ë � 89 : €� � ¾ ” ff � @Target �� 1 Æ d � ; < D = �Ë Ì � java.lang.annotation.ElementType> ? ËÌ� public enum ElementType { TYPE,//@ A BC DE FG EH I E¶· FIELD,//@ A BC JKLM METHOD,//@ A BC NO PARAMETER,//@ A BCPQ CONSTRUCTOR,//@ A BCRS NO LOCAL_VARIABLE,//@ A BCTU LM ANNOTATION_TYPE,// @ A BC Annotation PACKAGE//@ A BC V } 5 Deprecated f $ @Documented @Retention(RetentionPolicy.RUNTIME) public @interface Deprecated { } Deprecated 1Æ Ÿ * Ñ�¿ ` � [ � 7±ÙtÚÝÞ.� � H ÝÞ.€ � :* ß ff ffiW Ê � [¬ ” ff � @Documented [ ±X ��1Æd Ê Y javadoc Z r 4 W[ƒ\� H doc ƒ\ L �>] �� Ê � Ł‹ >]RúŒRú� 6 / 10 27± ; � Inherited � ¡ × ” ff �À»¼ � ) ¥ ” ff À �µËU  à À �� � 3. �´ P!ù2*^ �_­ [` 2a ¥ ff ð � ž #$ 2a ¥ bc �ð EJB / JPA 34 ” ffd [J�R ; û�� áâ F ‚ 5 7± "e ´µ Pojo package annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface Pojo { String table(); } Colum package annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.FIELD) public @interface Colum { String columName(); boolean isNULL() default true; String Type() default ""; } �� ���� w Ë package annotation.TestImpl; 7 / 10 import java.lang.annotation.Annotation; import java.lang.reflect.Field; import annotation.Colum; import annotation.Pojo; public class MyJPAProcess { public static void process(Object object) throws ClassNotFoundException { // fg ¶· Annotation[] annotationsClass = object.getClass().getAnnotations(); Field[] fields = object.getClass().getDeclaredFields(); // hi ¶·jk for (Annotation annotation : annotationsClass) { if (annotation instanceof Pojo) { System.out.println("--------lmPOJOn o --------"); Pojo pojo = (Pojo) annotation; System.out.println("p qrs t " + pojo.table()); } } for (Field field : fields) { //field.setAccessible(true); Annotation[] annotationsMethos = field.getAnnotations(); // hi ¶·jk for (Annotation annotation : annotationsMethos) { if (annotation instanceof Colum) { System.out.println("--------lmColumu v --------"); Colum colum = (Colum) annotation; 8 / 10 System.out.println("u vs t " + colum.columName()); System.out.println("u vDw t " + colum.Type()); System.out.println("x yz{| t " + colum.isNULL()); } } } } } � ¾ � ‡œ�²³� 2 ± Pojo ( Colum �}� � [ 2 ± 4 ~��� �� � áâ 34‚ 55 Ï fi Ð � ¤¥ ” ff � � � 78��øË package use; import annotation.Colum; import annotation.Pojo; @Pojo(table = "person") public class PersionPOJO { public PersionPOJO() { super(); } @Colum(columName = "id", isNULL = false, Type = "varchar") private String id; @Colum(columName = "name", isNULL = false, Type = "varchar") private String name; @Colum(columName = "age", isNULL = true, Type = "int") private int age; //€set/get } 9 / 10 [ � 7±9 : ��ø�ó + � ‡œ� ��� ž [ ± POJO 34 F ‡œ7± DAO ˁ ‚ [ ± POJO Ë� package use; import annotation.TestImpl.MyJPAProcess; public class PersionDAO { public void save(PersionPOJO persionPOJO) throws ClassNotFoundException { MyJPAProcess.process(persionPOJO); } public static void main(String[] args) throws ClassNotFoundException { PersionDAO persionDAO = new PersionDAO(); PersionPOJO persionPOJO = new PersionPOJO(); persionDAO.save(persionPOJO); } } ¾ â "# ; ‡œ�7±Ùƒ}„ �…†7 á �ã ff [ ± save }„�‡fiˆ˜� ¡ á Ł‹ � --------lmPOJOn o -------- p qrs t person --------lmColumu v -------- u vs t id u vDw t varchar x yz{| t false --------lmColumu v -------- u vs t name u vDw t varchar 10 / 10 x yz{| t false --------lmColumu v -------- u vs t age u vDw t int x yz{| t true DAO L ã ff � ��� w Ë�}„� [ ±ÑÒ34‰Ł;‹7 á ��� w Ë�} „ �- B 7± ORM L Œ „ � ; € � "–ÙƒÚ"–�� 4. Ž � �� � ‡œ 78 � ì  %‘ ’ “ û7 ` ’2�-.   �”• � ÷ ¾ �� �+ ,-.� 27±�� ¢ � ¯ #$ –— � � � ¯ � ‘ ’ ˜ {|/ ˜™ š� ¦�› ˆœ  �Ï fi Ԟ��� 27±�� ¢ ; � fi‡ CD � JPA � CD / EJB � CD ž Ÿ   � ž [` CD �� w¡� Rú�]¢£‡��ö¤]¢ ; � JBoss  % Weblogic [ \ JavaEE ]¢� � ¯ � jar¥ � i Java SDK U � 4 �� ¦� � CD �Rú�� ¦ � [ ± CD �� w U � § %¨ §© %¨ © � i ¾ â 4 �� JDK >� ; � 4 �� CD �3 � ¯ sun 27ª� w Afi �� e �� ¦ff 3 sun � JDK � w R«U€ � � Þ� w [ ª Afi� [¬:* ß ffAfiffiW­ � À H -.ƒ„ L -.�7 `Ł‹ �+,� ®¯ �-. ƒ„� ž (°u ~~~ 2ù­ ß ffAfi   ±-. ² /2ù­-.ƒ„ �� *³    ß ff ² P!� [ ±´ % “ û§ %¨ © %¨ © � � 2S��µ¶ �ڟ” ff· ± ð � û � ßà ŒN�
本文档为【Java基础复习笔记12Java自定义注解Annotation的使用】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_240278
暂无简介~
格式:pdf
大小:265KB
软件:PDF阅读器
页数:0
分类:互联网
上传时间:2011-08-10
浏览量:10