`

JAVA注解的总结

 
阅读更多

JAVA注解的总结

一、java内置注解- J0 y. E* ?9 c1 C6 R' t5 Z& l
0 E( x( H$ S+ Y* @
     1、@Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括:  
            ElemenetType.CONSTRUCTOR   构造器声明  / ^& b9 Z* h. g& Y, t- A+ Y7 [9 \
            ElemenetType.FIELD   域声明(包括 enum 实例)  
            ElemenetType.LOCAL_VARIABLE   局部变量声明  5 O! ?- S3 S0 y" G) z
            ElemenetType.METHOD   方法声明  ! V! b. V4 f5 X' a/ c, b, ?+ W1 K/ g
            ElemenetType.PACKAGE   包声明  2 S' f+ P  ?* c+ X
            ElemenetType.PARAMETER   参数声明  6 s! Q9 J& @! x
            ElemenetType.TYPE   类,接口(包括注解类型)或enum声明
    2、@Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:  
         RetentionPolicy.SOURCE   注解将被编译器丢弃  4 P' T+ s1 {9 }
           RetentionPolicy.CLASS   注解在class文件中可用,但会被VM丢弃  
           RetentionPolicy.RUNTIME   VM将在运行期也保留注释,因此可以通过反射机制读取注解的信息。/ L1 h" G6 R! D; W/ i
    & s: U6 X& F) e/ m9 F/ Z
     3、@Documented 将此注解包含在 javadoc 中
H& h3 g# |8 R  U/ b  x
     4、@Inherited 允许子类继承父类中的注解' {5 |# f. y* ~" _0 M* L# L9 D

   5、@Deprecated  表示当前元素是不赞成使用的。
a3 y, A+ `! n% M" U* g
     6、@Override  表示当前方法是覆盖父类的方法。; X  `- A2 x# Q/ [+ @; }

     7、@SuppressWarnings  表示关闭一些不当的编译器警告信息。; B% P/ U: N& r! O0 L% t
6 J; A- e$ s" H8 E' ]6 ~
5 q* [! g  {* q% t8 r. B

二、Spring内置注解  K) e' G$ {/ u% d4 Y9 c

     1、@Autowired注解/ {% s9 p8 b$ i5 N2 n1 N
% p) ^! B7 _9 W  z2 r" H
          采用byType的方法自动装配。可以应用在类的成员变量、成员方法和构造子。默认情况下使用@Autowired注解进行自动注入时,Spring容器 中匹配的候选Bean数目必须有且仅有一个。可以设置required=false让其成为可选的。当存在多个类型一致的bean时,可以用 @Qualifier注解来明确指定要装配的bean。( [% J& ?1 f( K7 D6 P

 s( o1 _: N
     2、@Qualifier注解% ^: a/ J- |5 u1 X5 ?2 _( }, v

           @Qualifier("Bean的名称")  指定注入Bean的名称。只能用于类的成员变量、方法的参数和构造子的参数。如果它与@Autowired联合使用,则自动装配的策略就变为byName了。
  注解使用范例:

  1. public class Person {
  2.         private Long id;
  3.         private String name;
  4.         private Address address;
  5.        
  6.         public Person(){
  7.                
  8.         }
  9.        
  10.         public Person(Long id, String name){
  11.                 this.id = id;
  12.                 this.name = name;
  13.         }
  14.         @Autowired(required=false)
  15.         public void setAddress(@Qualifier("address2")Address address) {
  16.                 this.address = address;
  17.         }
  18. }
复制代码
  1. <!-- 通过注解定义bean。默认同时也通过注解自动注入 -->
  2. <context:component-scan base-package="com.cjm"/>
  3. <bean id="address1" class="model.Address" p:city="gz1" p:zipCode="111"/>
  4. <bean id="address2" class="model.Address" p:city="gz2" p:zipCode="222"/>
  5. <bean id="person" class="model.Person">
  6.         <constructor-arg index="0" ="111"/>
  7.         <constructor-arg index="1" ="cjm"/>
  8. </bean>
复制代码

自定义限定符注解:

  1. @Target({ElementType.FIELD, ElementType.PARAMETER})
  2. @Retention(RetentionPolicy.RUNTIME)
  3. @Qualifier
  4. public @interface MyQulifier {
  5.         String ();
  6. }
复制代码
  1. public class Person {
  2.         private Long id;
  3.         private String name;
  4.         private Address address;
  5.        
  6.         public Person(){
  7.                
  8.         }
  9.        
  10.         public Person(Long id, String name){
  11.                 this.id = id;
  12.                 this.name = name;
  13.         }
  14.         @Autowired
  15.         public void setAddress(@MyQulifier("a2")Address address) {
  16.                 this.address = address;
  17.         }
  18. }
复制代码
  1. <bean id="address1" class="model.Address" p:city="gz1" p:zipCode="111">
  2.         <qualifier type="annotation.MyQulifier" ="a1"/>
  3. </bean>
  4. <bean id="address2" class="model.Address" p:city="gz2" p:zipCode="222">
  5.         <qualifier type="annotation.MyQulifier" ="a2"/>
  6. </bean>
复制代码

3、@Component注解

         @Component("Bean的名称")  通过注解标注一个类为受管Bean。默认情况下通过@Component定义的Bean都是singleton的,如果需要使用其它作用范围的Bean,可以通过@Scope注释来达到目标。
     4、@Scope注解1 Q  d& T  l1 K' q) d

          @Scope("Bean的作用范围")  通过@Scope注解为受管指定作用域。BeanBean的作用范围有:singleton、prototype等。
]/ u' O0 a$ l& l; x/ r' u
     5、@Controller注解% |1 \7 p5 |5 M' ?' M

Q& e/ \0 E
* x7 f; i& R& @
     6、@Service注解# C* w6 C$ C' c3 U4 Y
; W  ^) W# f6 y4 N) @% y

Q& P2 h* I( Y* W4 R
     7、@Repository注解
?9 e& ]" \+ l( O5 Q

三、JSR-250规范的注解(需要common-annotations.jar包的支持)$ p2 ~4 Q+ a) Z- H4 k) j1 g/ B

     1、@Resource注解
2 V- F) t3 h, z) q
          @Resource(name="person")  name属性用于指定注入的Bean的名称。# S2 e9 K0 X' g
9 {+ n6 M% g$ {0 F
          @Resource(type=Person.class)  type属性用于指定注入的Bean的类型。
@7 q- j! R$ v; |9 `; P
% M" a# X  H4 R: ~/ Q/ V! S% h

     2、@PostContsuct注解

          用于指定受管Bean的初始化方法,作用与Bean的init-method属性类似。) ?/ M" E! @4 M/ y- R! |2 l
3 ?/ N3 i' }% l) q4 O! X
/ k8 v( ?1 r- O) ^6 g
$ a+ h+ E  ]: m( K% ^& v
     3、@PreDestory注解: v- B- t3 I1 Q5 F7 ?
/ q8 v1 d9 O( \3 B. L9 P0 j
          用于指定受管Bean的析构方法,作用与Bean的destory-method属性类似。

分享到:
评论

相关推荐

    android学习日记-4 JAVA注解总结

    相关例子 博文链接:https://zwx622.iteye.com/blog/2064446

    java spring 框架及注解 总结

    java spring 框架及注解 总结,本人在项目开发中总结的,希望对大家有所帮助

    java注解知识思维导图

    这是自己总结的java注解 使用了思维导图,方便读取,快速阅读

    java-注解总结【从入门到项目总结】

    关于java注解的总结: 从入门介绍到项目使用的实际经验归纳总结得出! 从jdk5到jdk8!

    java基础学习总结笔记

    知识主要包括:Java基础常识、如何安装Java工具、Java语言的基础组成、Java面向对象、Java多线程、Java常用类、集合(重点)、IO流、GUI图形界面、网络编程、正则表达式、反射、注解、类加载器、动态代理等等,另外...

    JAVA注解相关知识总结

    主要介绍了JAVA注解相关知识,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    Java 基础核心总结 +经典算法大全.rar

    《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...

    java实验报告.docx

    java实验报告,一共16个实验,包含代码截图。...实验十三 Java 反射与注解程序应用 31 实验十四 Java 数据库程序设计应用 36 实验十五 Java Swing 图形用户界面程序设计应用 43 实验十六 Java 网络程序设计应用 52

    java基础的注解和反射的相关知识点总结

    ,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记 反射和反射机制 反射(Reflection): Java的反射是指程序在运行期可以拿到一个对象的所有信息。 反射的优点和缺点: 优点:可以实现动态创建对象...

    10万字总结java面试题和答案(八股文之一)Java面试题指南

    Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 Spring面试题 Spring Boot面试题 Spring Cloud面试题 RabbitMQ面试题 Dubbo 面试题 MyBatis 面试题 ZooKeeper ...

    Java 基础核心总结_.zip

    从java概述》java开发环境配置》java基本语法》java执行流程》面向对象》访问控制权限》接口和抽象类》异常》内部类》集合》泛形》反射》枚举》I/O》注解》关于 null 的几种处理方式

    java技能总结.docx

    掌握Java的高级特性:掌握Java的反射、泛型、注解、并发编程等高级特性,以及Java集合框架和并发包的使用。 掌握Java Web开发:掌握Java Web开发的相关技术,如Servlet、JSP、Spring、Hibernate等,能够开发基于Web...

    Java自定义注解用法实例小结

    主要介绍了Java自定义注解用法,结合实例形式总结分析了java常见的自定义注解类型、功能、用法及操作注意事项,需要的朋友可以参考下

    SSH完全注解版

    自己写的一个注解版的SSH框架的项目!jar包齐全,可直接运行!里面还有自己对Java注解的一些总结!

    java基础核心总结归纳---参考手册--心得手册-学习资料-总结经验

    1 Java 概述 3 1.1 Java 定义 3 1.2 Java 的特点 3 1.3 Java 开发环境 5 Java 基本语法 7 数据类型 7 整数型 7 浮点型 7 字符型 8 ...注解 28 关于 null 的⼏种处理⽅式 29 null 是任何引⽤类型的初始值 29

    Spring系列之Spring常用注解总结.docx

    传统的Spring做法是使用.xml文件来对bean进行注入或者是...为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java Bean紧密结合,既大大减少了配置文件的体积,又增加了Java Bean的可读性与内聚性。

    java深度历险

    JAVA注解 34 使用注解 34 开发注解 35 处理注解 35 实例分析 38 参考资料 39 JAVA反射与动态代理 40 基本用法 40 处理泛型 42 动态代理 42 使用案例 43 参考资料 44 JAVA I/O 45 流 45 缓冲区 47 字符与编码 48 通道...

    Java基础核心总结.PDF

    1.java概述 2.java开发环境配置 3.java基本语法 4.java执行控制流程 5.面向对象 6.访问控制权限 7.接口和抽象类 8.异常 9.内部类 10.集合 11.泛形 12.反射 13.枚举 ...15.注解 16.Null值处理 17.思维导图

    实验5 JAVA常用类.doc

    本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)...进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、Servlet、JSP、XML解析、单例模式与枚举。本专栏主要为Java入门者提供实验参考。

    通过反射获取注解的属性值(源代码)

    通过反射获取注解的属性值 1、获取类上注解的值 1.1 定义注解类 1.2 定义使用注解的类 1.3 测试类 1.4 测试结果 2、获取属性变量上注解的值 2.1 定义注解类 2.2 定义使用注解的类 2.3 定义测试类 ...总结:

Global site tag (gtag.js) - Google Analytics