`
570421779
  • 浏览: 46322 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

java 注解的使用

阅读更多
项目会经常解析properies文件,根据key获得value,下面写一个如何使用注解的方式来获得value
1. AnnotateProperties类:用来获得properties文件的路径
package AnnotateSrc;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
public @interface AnnotateProperties {
    String value();
    String key() default "";

}


2.Property类:用来记录键值对
package AnnotateSrc;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface Property {

	String key();
	
	String defaultValue() default "";

}

3.Annotate:JavaBean使用注解的方式声明properties文件存放的路径
package test;

import AnnotateSrc.AnnotateProperties;
import AnnotateSrc.Property;

[color=red]@AnnotateProperties(value = "test.properties", key = "C:\\")[/color]
public class Annotate {    
    @Property(key = "header")
    private String header_;

    public String getHeader() {
        return header_;
    }

    public void setHeader(String header) {
        this.header_ = header;
    }
}


4.Test :测试类
package test;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import AnnotateSrc.AnnotateProperties;
import java.util.Properties;

public class Test {

    /**
     * @param args
     * @throws Exception 
     */
    public static void main(String[] args) throws Exception {
        AnnotateProperties annotationProperties = Annotate.class
        .getAnnotation(AnnotateProperties.class);
        String propertiesName = annotationProperties.value();
        String dir = annotationProperties.key();
        System.out.println(dir+propertiesName);
        File f = new File(dir+"\\"+propertiesName);
        Properties pro = readProperties(f);
        System.out.println(pro.get("header"));
        
    }
    
    private static Properties readProperties(File file) throws Exception {
        BufferedInputStream bis = null;
        Properties prop = null;
        try {
            bis = new BufferedInputStream(new FileInputStream(file));
            prop = new NullableProperties();
            prop.load(bis);
        } catch (FileNotFoundException ex1) {
            throw new Exception(ex1);
        } catch (SecurityException e) {
            throw new Exception(e);
        } catch (Exception ex2) {
            throw new Exception(ex2);
        } finally {
            try {
                if (bis != null) {
                    bis.close();
                }
            } catch (Exception ex) {
            }
        }
        return prop;
    }
    
    public static class NullableProperties extends Properties {
        public String getProperty(String key, String defaultValue) {
            String origin = super.getProperty(key, defaultValue);
            if (origin != null && origin.trim().length() == 0) {
                // 空白
                return defaultValue;
            }
            return origin;
        }
    };
}



2
1
分享到:
评论
1 楼 song_in_china 2012-06-05  
不错,我喜欢

相关推荐

    java注解使用例子

    本篇文章将深入探讨Java注解的使用,包括其基本概念、类型、使用场景以及如何自定义注解。 首先,Java提供了三种预定义的注解类型,它们是: 1. `@Override`:确保方法真正重写了超类中的方法,如果找不到匹配的...

    java注解代码java注解代码

    java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解代码java注解...

    java注解webservice学习第一篇

    本文将深入探讨如何使用Java注解来构建Web服务,并结合给出的“lib”压缩包文件,推测可能包含了一些用于支持Web服务的库文件。 首先,让我们了解什么是Web服务。Web服务是一种基于互联网的软件应用,允许不同的...

    Java 使用注解拼接SQL语句

    "Java使用注解拼接SQL语句"是一个常见的实践,它使得动态构建SQL查询变得更为简洁和可维护。这种技术通常与ORM(对象关系映射)框架如MyBatis或Hibernate结合使用,但也可以通过自定义处理逻辑实现。 1. **自定义...

    java注解知识思维导图

    这是自己总结的java注解 使用了思维导图,方便读取,快速阅读

    Java自定义注解使用反射获取字段注解

    Java自定义注解是Java语言中的一个重要特性,它允许我们创建自己的元数据,为代码提供额外的信息。在Java中,注解(Annotation)主要用于编译器检查、代码生成、运行时处理等方面。本文将深入探讨如何通过反射机制来...

    java注解深入理解

    Java注解是Java编程语言中的一个重要特性,它提供了一种元数据的方式,允许程序员在代码中插入额外的信息,这些信息可以被编译器或者运行时环境用来执行特定的任务。注解在现代Java开发中扮演了不可或缺的角色,尤其...

    Java注解的使用例子

    Java注解(Annotation)是Java语言的一个重要特性,它为元数据提供了一种结构化的方式。元数据是在程序代码中包含的关于程序本身的信息,但这些信息并不直接影响程序的执行。注解允许开发者向编译器、JVM或工具提供...

    Java注解实现方式

    Java注解是Java编程语言中的一个重要特性,它允许程序员在代码中嵌入元数据,这些元数据可以被编译器或运行时环境用来执行各种任务,例如代码...了解和熟练掌握Java注解的使用,对于提升Java编程的效率和质量至关重要。

    java注解大全(非常全面)

    Java注解是Java编程语言中的一个重要特性,它们提供了一种元数据的方式,允许程序员在代码中插入信息,这些信息可以被编译器或运行时环境用于处理代码。注解不仅简化了开发,还增强了代码的可读性和维护性。本资料...

    java注解和反射的个人学习笔记

    java注解和反射的个人学习笔记

    java关于注解使用的例子

    4. **注解使用** 注解可以应用于类、接口、方法、变量等,如: ```java @MyAnnotation(number = 1, name = "Test") public class TestClass { // ... } ``` 5. **元注解** 元注解是在注解上使用的注解,...

    Java 注解技术视频详解

    在本视频教程中,我们将深入探讨Java注解的各个方面,包括其基本概念、使用方式以及在实际开发中的应用。 首先,我们来理解什么是Java注解。注解在Java中是一种特殊的声明,它的主要目的是提供元数据,即关于代码的...

    java 自定义注解验证

    首先,我们需要理解Java注解的基本原理。注解是一种元数据,它提供了一种安全的方法来将信息附加到代码中,而不直接影响代码的执行。Java提供了内置的注解,如`@Override`、`@Deprecated`等,但自定义注解允许我们...

    JAVA 注解示例 详解

    本篇文章将深入探讨Java注解的使用及其在实际开发中的应用。 首先,我们了解Java注解的基本结构。一个注解以`@`符号开头,后面跟着注解类型,如`@Override`或`@Deprecated`。注解可以带有参数,参数以键值对的形式...

    Java的注解包,在使用注解的时候导入的jjar包

    总的来说,Java注解与JUnit和Spring的结合,为Java开发者提供了一种高效、简洁的编程方式,使得测试、依赖管理和框架集成变得更加便捷。这两个JAR包是Java开发者日常工作中不可或缺的工具,对于保证代码质量和提升...

    Java自定义注解实例

    ### 一、Java注解概述 1. **定义**: 注解是一种声明式的编程元素,以`@`符号开头,后面跟着注解的名称。它们可以应用于类、接口、方法、变量等不同级别。 2. **预定义注解**: Java标准库提供了若干预定义注解,如`...

    java注解jar包

    Java注解是Java编程语言中的一个重要特性,它允许在代码中添加元数据,这些元数据可以被编译器或运行时环境用来执行特定的操作。Java注解在软件开发中起着关键作用,它们简化了代码,提高了可维护性和可读性,同时也...

    java注解整理

    Java注解是Java编程语言中的一个重要特性,它们提供了一种元数据的方式,让开发者能够向编译器或运行时环境传递额外的信息。这些信息可以用来验证代码、自动生成代码、配置框架或者在运行时进行一些处理。注解的使用...

Global site tag (gtag.js) - Google Analytics