为了账号安全,请及时绑定邮箱和手机立即绑定

spring中如何初始化自定义注解

spring中如何初始化自定义注解

函数式编程 2021-08-04 17:07:29
如果我定义一个注释来设置类字段,如下所示:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)@interface Set {    int value();}经过必要的反思:class Injector {    public static void inject(Object instance) {        Field[] fields = instance.getClass().getDeclaredFields();        for (Field field : fields) {            if (field.isAnnotationPresent(Set.class)) {                Set set = field.getAnnotation(Set.class);                field.setAccessible(true); // should work on private fields                try {                    field.set(instance, set.value());                } catch (Exception e) {                    e.printStackTrace();                }            }        }    }}我会像这样使用它:class Demo {    @Set(1)    public int var;    public int var2;}我将如何在启动时在 spring(不是 spring-boot)中注入它?我在这里找到了这个例子,但我不想自己调用注入方法。
查看完整描述

1 回答

?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您可以为BeanPostProcessorspring 上下文提供一个。


public class Injector implements BeanPostProcessor {

  @Override

  public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {

    inject(bean);

    return bean;

  }

}


查看完整回答
反对 回复 2021-08-04
  • 1 回答
  • 0 关注
  • 229 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信