首页>>后端>>Spring->代码验证Spring注解的派生性

代码验证Spring注解的派生性

时间:2023-11-29 本站 点击:0

前言

前面的文章有说Spring注解是没有继承一说的,那么注解想要其他注解的功能怎么办,这就要用到spring注解的派生性,下面就通过代码来进行验证。

代码验证

写一个自定义注解StringResposity

@Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Componentpublic@interfaceStringResposity{/***属性方法名称必须与{@linkComponent#value()}保持一致*@returnbean的名称*/Stringvalue()default"";}

将注解标记在类上

@StringResposity("chineseNameRepository")publicclassNameRepository{/***查找所有的名字*@return*/publicList<String>findAll(){returnArrays.asList("allen","json","diva");};}

编写配置文件,加载配置文件时扫描类

<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><!--找寻被@Component或者其派生Annotation标记的类(Class),将它们注册为SpringBean--><context:component-scanbase-package="com.example.demo.annotation"/></beans>

验证

publicclassDerivedComponentAnnotationBootStrap{publicstaticvoidmain(String[]args){//构建spring上下文ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext();//设置xml的文件地址context.setConfigLocation("classpath:/META-INF/spring/context.xml");//启动上下文context.refresh();//获取文件名为chineseNameRepository的bean对象NameRepositorynameRepository=(NameRepository)context.getBean("chineseNameRepository");//输出用户名System.out.printf("nameRespority.findAll()=%s\n",nameRepository.findAll());}}

如过这里输出了"allen","json","diva"证明类被扫描到了容器,@StringResposity拥有了@Component的功能,证明存在注解的派生性执行下,执行结果为

nameRespority.findAll() = [allen, json, diva]说明spring存在注解的派生性


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Spring/292.html