博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建spring自定义注解进行自动装配
阅读量:6245 次
发布时间:2019-06-22

本文共 2061 字,大约阅读时间需要 6 分钟。

1、创建自定义注解

1 import org.springframework.beans.factory.annotation.Qualifier; 2 import java.lang.annotation.ElementType; 3 import java.lang.annotation.Retention; 4 import java.lang.annotation.RetentionPolicy; 5 import java.lang.annotation.Target; 6  7  8 @Target({ElementType.FIELD,ElementType.PARAMETER,ElementType.TYPE}) 9 @Retention(RetentionPolicy.RUNTIME)10 @Qualifier11 public @interface StringedInstrument {12 13 }
View Code

Retention注解有一个属性value,是RetentionPolicy类型的,Enum RetentionPolicy是一个枚举类型,

用@Retention(RetentionPolicy.CLASS)修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,但不会被虚拟机读取在运行的时候;

用@Retention(RetentionPolicy.SOURCE )修饰的注解,表示注解的信息会被编译器抛弃,不会留在class文件中,注解的信息只会留在源文件中;
用@Retention(RetentionPolicy.RUNTIME )修饰的注解,表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时,

2、创建instrument ,并使用注解

 

1 @StringedInstrument2 public class Instrument {3 4     public void play() {5         System.out.println("playing...");6     }7 }

 

3、创建表演者kenny,进行自动装配

1 import org.springframework.beans.factory.annotation.Autowired; 2  3 public class Kenny { 4  5     @Autowired 6     @StringedInstrument 7     private Instrument instrument; 8  9     public Instrument getInstrument() {10         return instrument;11     }12 13     public void setInstrument(Instrument instrument) {14         this.instrument = instrument;15     }16 17 18     public Kenny(Instrument instrument) {19         this.instrument = instrument;20     }21 22     public void  perform(){23         instrument.play();24     }25 }

4、配置spring

1 
2
6 7
8 9
10
11 12
13 14
15 16

5、测试

1 import org.springframework.context.ApplicationContext; 2 import org.springframework.context.support.ClassPathXmlApplicationContext; 3  4  5 public class Test { 6     public static void main(String[] args) { 7  8         ApplicationContext context = new ClassPathXmlApplicationContext("context.xml"); 9         Kenny kenny = (Kenny) context.getBean("kenny");10         kenny.perform();11     }12 }

 

转载于:https://www.cnblogs.com/ethereal/p/6013589.html

你可能感兴趣的文章
Windows Ready Boost,使用闪存设备提高性能
查看>>
mysql导入导出包括函数或者存储过程
查看>>
工作流程组件介绍 ━ RDIFramework.NET ━ .NET快速信息化系统开发框架
查看>>
Struts2中Action访问Servlet API的三种方法
查看>>
个性化自己系统的ContextLoaderListener实现
查看>>
Java之final修饰
查看>>
CentOS下添加用户并且让用户获得root权限
查看>>
5月29早上VM HA故障
查看>>
mysqldump参数详解
查看>>
new begin
查看>>
List集合按Size分组
查看>>
windows下安装jandgo
查看>>
【译】你可以用GitHub做的12件 Cool 事情
查看>>
看图你就明白一个光棍的道理 [图片]
查看>>
ul宽度不固定,li的数量不定要保持居中???
查看>>
mysql多实例的作用和问题
查看>>
[置顶] ApplicationResources_zh_CN.properties乱码问题
查看>>
我的友情链接
查看>>
当寂寞不得不成为一种习惯
查看>>
oracle的序列号(sequence)
查看>>