java配置文件放数组,Java反射+自定义注解实现配置文件数组加载(实现@ConfigurationProperties("xxx"))...

Java、Rust 技术交流群: 783303214

一、背景

最近有小朋友问我,怎么样在.properties文件中配置数组参数,我给他举了上篇文章中的注解@ConfigurationProperties("xxx"),但是遗憾的是他们的项目并没有接入spring,而是用netty写的什么sdk吧,我猜,所以上述注解无法使用,加上自己很久没有玩反射了,就将就着写了一个demo,以供初学者借鉴,话不多说,不懂的看注释,写的还是比较详细。

二、代码实现

首先,我们定义一个注解类,并规定好其作用域等信息

package com.github;

import java.lang.annotation.*;

/**

* @Author: BBSee

* @E-mail: rolltion.zhang@foxmail.com

* @CreateDate: 16:16 2019/7/22 0022

* @Description:

*/

@Target({ ElementType.TYPE})

@Retention(RetentionPolicy.RUNTIME)

@Documented

public @interface BBSee {

String value() default "";

/**

* The prefix of your properties fields

*/

String prefix() default "";

/**

* These two boolean fields have not been analysed at present

* if you do have this requirement,add it to the {@link com.github.PropertiesLoader<>}

* @return

*/

boolean ignoreInvalidFields() default false;

boolean ignoreUnknownFields() default true;

}

我们规定该注解只能使用于类上,即我们的pojo类上,prefix为配置文件中的字段前缀,接下来,我们定义注解解释器并对配置文件进行获取,由于时间不是很多,所以只写了核心的功能,即注解加载数组信息,根据pojo类的字段名称加载配置信息等,会有些bug,但是都无关痛痒,具体的看代码注释:

package com.github;

import com.github.conf.DataSourceNumberProperties;

import lombok.extern.slf4j.Slf4j;

import org.springframework.util.Assert;

import java.beans.IntrospectionException;

import java.beans.PropertyDescriptor;

import java.io.IOException;

import java.io.InputStream;

import java.lang.reflect.Fiel

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值