转载: https://www.cnblogs.com/Johness/archive/2013/04/17/3026689.html
1.注解本质上是一种标记,与xml进行配置相比,只有方式上的差别
2.注解本身也是一种类型,也需要声明
package annotation; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * 自定义注解,用来配置方法 * * @author Johness * */ @Retention(RetentionPolicy.RUNTIME) // 表示注解在运行时依然存在 @Target(ElementType.METHOD) // 表示注解可以被使用于方法上 public @interface SayHiAnnotation { String paramValue() default "johness"; // 表示我的注解需要一个参数 名为"paramValue" 默认值为"johness" }
3.使用注解
package element; import annotation.SayHiAnnotation; /** * 要使用SayHiAnnotation的元素所在类 * 由于我们定义了只有方法才能使用我们的注解,我们就使用多个方法来进行测试 * * @author Johness * */ public class SayHiEmlement { // 普通的方法 public void SayHiDefault(String name){ System.out.println("Hi, " + name); } // 使用注解并传入参数的方法 @SayHiAnnotation(paramValue="Jack") public void SayHiAnnotation(String name){ System.out.println("Hi, " + name); } // 使用注解并使用默认参数的方法 @SayHiAnnotation public void SayHiAnnotationDefault(String name){ System.out.println("Hi, " + name); } }
4.反射来获取被注解的方法,并执行相应的操作
package Main; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import element.SayHiEmlement; import annotation.SayHiAnnotation; public class AnnotionOperator { public static void main(String[] args) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, ClassNotFoundException { SayHiEmlement element = new SayHiEmlement(); // 初始化一个实例,用于方法调用 Method[] methods = SayHiEmlement.class.getDeclaredMethods(); // 获得所有方法 for (Method method : methods) { SayHiAnnotation annotationTmp = null; if((annotationTmp = method.getAnnotation(SayHiAnnotation.class))!=null) // 检测是否使用了我们的注解 method.invoke(element,annotationTmp.paramValue()); // 如果使用了我们的注解,我们就把注解里的"paramValue"参数值作为方法参数来调用方法 else method.invoke(element, "Rose"); // 如果没有使用我们的注解,我们就需要使用普通的方式来调用方法了 } } }
5.结果
Hi, Jack Hi, johness Hi, Rose
相关推荐
集成了Maven的Spring框架,实现了JavaConfig注解方式的配置,包含源码,以及Maven的配置文件
spring-javaconfig-reference Spring JavaConfig Reference Guide Version 1.0.0.m3 Copyright © 2005-2008 Rod Johnson, Costin Leau, Chris Beams About this document 1. Document structure Part I, ...
spring MVC基于Javaconfig配置,无xml快速启动项目,快速上手学习。
在开发Java程序,尤其是Java EE应用的时候,总是免不了与各种配置文件打交道。java注解则帮我们使之更整洁,不会配置... 下面这篇文章主要介绍了Spring中的JavaConfig注解,需要的朋友可以参考借鉴,下面来一起看看吧。
springboot+dubbo的四种配置方式:starter、xml、javaconfig、annotation,可从github上下载:https://github.com/denkbug/dubbo-demo
Spring使用JavaConfig集成JPA简单例子,对应博文地址为http://blog.csdn.net/wu_boy/article/details/72353608
RedisConfig:Redis配置类 设置数据存入 redis 的序列化方式,并开启事务,注入封装RedisTemplate等等
JavaConfig使用Java代码来对配置,管理和实例化Bean.并交由Spring容器来使用。在使用XML文件来描述Bean配置时,需要定义许多专有的XML元素。而使用Java代码来描述Bean配置,是利用JDK 5 的注释特性。不管是使用XML...
spring-javaconfig-examples 使用 Java Config 的特定 Spring 模块的一些简短示例。 它们都基于 spring-barebones-javaconfig。 spring-barebones-javaconfig:最小的 REST API 模块。 spring-logback-javaconfig...
web.xml 替代版本,通过java 文件来代替 xml 配置文件实现0xml
spring-javaconfig-sample, Spring MVC/Spring Data JPA/Hibernate的spring JavaConfig示例 spring-配置示例自 spring 3.0以来,JavaConfig特性被包含在核心 spring 模块中。 因此Java开发人员可以将 spring bean...
基于java config的springSecurity的基本集成配置(二)--自定义认证,详细介绍:http://blog.csdn.net/xiejx618/article/details/42609497
spring+springmvc+mybatis,无xml配置,javaconfig,实现邮件短信微信等过呢能,技术上包含了消息队列,数据库,缓存,Redis等功能
linux下配置java开发环境
ShiroConfig.java 看博客吧
jdbc java progress file config
请下载后面上传的那个
spring java配置
NULL 博文链接:https://hbxflihua.iteye.com/blog/2405407
纯Java Config配置的Spring MVC项目示例.zip