`

Java Config与注解(转载)

 
阅读更多

转载: 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

 

分享到:
评论

相关推荐

    Spring框架JavaConfig注解配置方式实例

    在这个实例中,我们将探讨如何使用JavaConfig注解配置方式来设置Spring框架,同时结合Maven进行项目管理。 **Maven** Maven是一个项目管理工具,它帮助开发者构建、管理和部署Java项目。`pom.xml`是Maven项目的配置...

    spring-javaconfig-reference

    - **JavaConfig与XML结合**:可以同时使用JavaConfig和XML配置方式,提供更高的灵活性。 #### 总结 Spring JavaConfig为Spring框架提供了一种全新的配置方式,它利用Java语言的强大功能来替代传统的XML配置文件。...

    Spring JavaConfig指南

    JavaConfig是Spring框架下的一个子项目,它提供了一种全新的方式来配置Spring容器中的Bean,这种方式不再依赖于XML配置文件,而是利用Java语言本身的特性(如注解)来进行Bean的定义、装配和管理。JavaConfig的出现...

    Spring使用JavaConfig集成JPA简单例子

    在本文中,我们将深入探讨如何在Spring框架中利用JavaConfig集成Java Persistence API (JPA)。JPA是一种标准的ORM(对象关系映射)技术,它允许开发人员使用面向对象的编程模型来处理数据库操作,而无需直接编写SQL...

    快速搭建一个java config(无web.xml)的web工程(二)

    在Java Config中,我们可以通过`@Configuration`注解标记一个类为配置类,然后使用`@Bean`注解定义bean。 接下来,我们来一步步构建这个Web工程: 1. **创建Maven项目**: - 使用Maven作为构建工具,创建一个新的...

    spring MVC基于Javaconfig配置项目

    spring MVC基于Javaconfig配置,无xml快速启动项目,快速上手学习。

    详解Spring中的JavaConfig注解

    在开发Java程序,尤其是Java EE应用的时候,总是免不了与各种配置文件打交道。java注解则帮我们使之更整洁,不会配置... 下面这篇文章主要介绍了Spring中的JavaConfig注解,需要的朋友可以参考借鉴,下面来一起看看吧。

    Spring新特性之Java Config在Web开发中的应用.pdf

    本文将深入探讨Java Config在Web开发中的应用,并通过与传统的XML配置方式的对比,展现Java Config在实际项目中的优势。 首先,我们需要了解Java Config在Spring框架中所扮演的角色。Spring框架是一个广泛应用于...

    springMvc java config s

    “无XML配置,javaconfig”意味着项目采用的是Spring 3.0之后引入的Java配置方式,通过@Configuration和@Bean注解定义配置类和bean,这种方式更直观,更易于理解和维护,同时避免了XML配置可能导致的语法错误。...

    RedisConfig.java

    RedisConfig:Redis配置类 设置数据存入 redis 的序列化方式,并开启事务,注入封装RedisTemplate等等

    springboot+dubbo的四种配置方式:starter、xml、javaconfig、annotation

    springboot+dubbo的四种配置方式:starter、xml、javaconfig、annotation,可从github上下载:https://github.com/denkbug/dubbo-demo

    快速搭建一个java config(无web.xml)的web工程(一)

    在早期的Spring应用中,配置主要通过XML文件完成,但随着Spring的发展,Java Config的出现使得我们可以使用纯Java代码来配置应用,减少了XML的使用,提高了可读性和维护性。本篇文章将指导你如何快速搭建一个不依赖...

    基于javaConfig的springDataJpa+dubbo+springMvc搭建

    【基于JavaConfig的Spring Data Jpa + Dubbo + Spring Mvc 搭建】 在现代企业级应用开发中,Spring框架以其强大的功能和灵活性被广泛采用。本知识点将深入讲解如何利用JavaConfig配置方式,结合Spring Data Jpa、...

    SpringMVC+JPA+Freeemarker 纯javaConfig,无xml配置

    在本项目"SpringMVC+JPA+Freeemarker 纯javaConfig,无xml配置"中,开发者采取了一种现代化的方法,完全摒弃了XML配置,转而使用Java Config方式进行配置。这一转变使得代码更加简洁、易于理解和维护。以下将详细...

    spring_javaConfig

    标题“spring_javaConfig”指的是Spring框架中的Java配置方式,它是一种使用Java代码替代XML配置来管理Spring应用组件的方法。在Spring框架中,Java配置提供了一种更简洁、类型安全且可读性更强的方式来定义bean及其...

    java注解之运行时修改字段的注解值操作

    Java 注解之运行时修改字段的注解值操作 Java 注解是一种用来标注Java代码的方式,它可以在编译期、运行期对代码进行处理和修改。本文主要介绍了 Java 注解之运行时修改字段的注解值操作,具有很好的参考价值,希望...

    Spring新特性之Java Config在Web开发中的应用.zip

    9. **Spring Boot的@ConfigurationProperties**:在Spring Boot中,Java Config还可以与`@ConfigurationProperties`结合,自动绑定YAML或properties文件中的配置到Java对象。 总结,Java Config是Spring框架的一大...

    基于javaConfig的springDataJpa+dubbo+springMvc的搭建

    所有的配置都在Java类中定义,通过注解来启用和配置各种功能。 **整合流程** 1. 创建Spring Boot项目,引入相应的依赖,如`spring-boot-starter-data-jpa`、`spring-boot-starter-web`和`dubbo-spring-boot-...

    自定义注解得使用,模拟spring通过注解方式创建bean实例

    首先,了解注解(Annotation)在Java中的角色。注解是一种元数据,它提供了在源代码中添加信息的方式,这些信息可以被编译器或运行时环境读取和处理。自定义注解允许我们创建自己的标记,用于特定目的,比如代码分析...

    spring-javaconfig

    JavaConfig使用Java代码来对配置,管理和实例化Bean.并交由Spring容器来使用。在使用XML文件来描述Bean配置时,需要定义许多专有的XML元素。而使用Java代码来描述Bean配置,是利用JDK 5 的注释特性。不管是使用XML...

Global site tag (gtag.js) - Google Analytics