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了。
注解使用范例:
- public class Person {
- private Long id;
- private String name;
- private Address address;
- public Person(){
- }
- public Person(Long id, String name){
- this.id = id;
- this.name = name;
- }
- @Autowired(required=false)
- public void setAddress(@Qualifier("address2")Address address) {
- this.address = address;
- }
- }
- <!-- 通过注解定义bean。默认同时也通过注解自动注入 -->
- <context:component-scan base-package="com.cjm"/>
- <bean id="address1" class="model.Address" p:city="gz1" p:zipCode="111"/>
- <bean id="address2" class="model.Address" p:city="gz2" p:zipCode="222"/>
- <bean id="person" class="model.Person">
- <constructor-arg index="0" ="111"/>
- <constructor-arg index="1" ="cjm"/>
- </bean>
自定义限定符注解:
- @Target({ElementType.FIELD, ElementType.PARAMETER})
- @Retention(RetentionPolicy.RUNTIME)
- @Qualifier
- public @interface MyQulifier {
- String ();
- }
- public class Person {
- private Long id;
- private String name;
- private Address address;
- public Person(){
- }
- public Person(Long id, String name){
- this.id = id;
- this.name = name;
- }
- @Autowired
- public void setAddress(@MyQulifier("a2")Address address) {
- this.address = address;
- }
- }
- <bean id="address1" class="model.Address" p:city="gz1" p:zipCode="111">
- <qualifier type="annotation.MyQulifier" ="a1"/>
- </bean>
- <bean id="address2" class="model.Address" p:city="gz2" p:zipCode="222">
- <qualifier type="annotation.MyQulifier" ="a2"/>
- </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属性类似。
相关推荐
相关例子 博文链接:https://zwx622.iteye.com/blog/2064446
java spring 框架及注解 总结,本人在项目开发中总结的,希望对大家有所帮助
这是自己总结的java注解 使用了思维导图,方便读取,快速阅读
关于java注解的总结: 从入门介绍到项目使用的实际经验归纳总结得出! 从jdk5到jdk8!
知识主要包括:Java基础常识、如何安装Java工具、Java语言的基础组成、Java面向对象、Java多线程、Java常用类、集合(重点)、IO流、GUI图形界面、网络编程、正则表达式、反射、注解、类加载器、动态代理等等,另外...
主要介绍了JAVA注解相关知识,文中讲解非常详细,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下
《Java 基础核心总结》 Java 概述 什么是 Java2 Java 的特点Java 开发环境 JDK JRE Java 开发环境配置 Java 基本语法 数据类型基础语法运算符 Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else ...
java实验报告,一共16个实验,包含代码截图。...实验十三 Java 反射与注解程序应用 31 实验十四 Java 数据库程序设计应用 36 实验十五 Java Swing 图形用户界面程序设计应用 43 实验十六 Java 网络程序设计应用 52
,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记 反射和反射机制 反射(Reflection): Java的反射是指程序在运行期可以拿到一个对象的所有信息。 反射的优点和缺点: 优点:可以实现动态创建对象...
Java注解面试题 多线程&并发面试题 JVM面试题 Mysql面试题 Redis面试题 Memcached面试题 MongoDB面试题 Spring面试题 Spring Boot面试题 Spring Cloud面试题 RabbitMQ面试题 Dubbo 面试题 MyBatis 面试题 ZooKeeper ...
从java概述》java开发环境配置》java基本语法》java执行流程》面向对象》访问控制权限》接口和抽象类》异常》内部类》集合》泛形》反射》枚举》I/O》注解》关于 null 的几种处理方式
掌握Java的高级特性:掌握Java的反射、泛型、注解、并发编程等高级特性,以及Java集合框架和并发包的使用。 掌握Java Web开发:掌握Java Web开发的相关技术,如Servlet、JSP、Spring、Hibernate等,能够开发基于Web...
主要介绍了Java自定义注解用法,结合实例形式总结分析了java常见的自定义注解类型、功能、用法及操作注意事项,需要的朋友可以参考下
自己写的一个注解版的SSH框架的项目!jar包齐全,可直接运行!里面还有自己对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做法是使用.xml文件来对bean进行注入或者是...为了解决这两个问题,Spring引入了注解,通过"@XXX"的方式,让注解与Java Bean紧密结合,既大大减少了配置文件的体积,又增加了Java Bean的可读性与内聚性。
JAVA注解 34 使用注解 34 开发注解 35 处理注解 35 实例分析 38 参考资料 39 JAVA反射与动态代理 40 基本用法 40 处理泛型 42 动态代理 42 使用案例 43 参考资料 44 JAVA I/O 45 流 45 缓冲区 47 字符与编码 48 通道...
1.java概述 2.java开发环境配置 3.java基本语法 4.java执行控制流程 5.面向对象 6.访问控制权限 7.接口和抽象类 8.异常 9.内部类 10.集合 11.泛形 12.反射 13.枚举 ...15.注解 16.Null值处理 17.思维导图
本专栏主要为Java程序设计(基础)实验报告和Java程序设计(进阶)...进阶篇有反射、泛型、注解、网络编程、多线程、序列化、数据库、Servlet、JSP、XML解析、单例模式与枚举。本专栏主要为Java入门者提供实验参考。
通过反射获取注解的属性值 1、获取类上注解的值 1.1 定义注解类 1.2 定义使用注解的类 1.3 测试类 1.4 测试结果 2、获取属性变量上注解的值 2.1 定义注解类 2.2 定义使用注解的类 2.3 定义测试类 ...总结: