今天小编给大家分享一下SpringBoot怎么通过自定义注解实现配置类的自动注入的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一免费云主机域名起来了解一下吧。SpringBoot中通过@ConfigurationProperties
或@Value
注解就可以获取配置文件中的属性定义并绑定到Java Bean或属性上,这也是我们平常使用最多的一种方式。但是小胖在开发过程中就遇到一个问题:在做MQ的开发中,配置文件中会配置多个生产者分别提供不同的业务能力,如果通过@ConfigurationProperties
注解来实现的话,这就意味着需要创建多个属性一样的配置类,虽然说可以实现功能,但是很明显,这不是一个很好的设计。场景如下所示:在我们日常的开发工作中,经常可以见到的是通过自定义注解+拦截器+反射从而实现对权限的校验或者对实体类字段值格式进行校验。那么,我们是不是也可以参考这个思路达到我们的目的呢?答案是肯定的,其实如果对Mabatis等组件比较熟悉的话,就可以看到这样的设计。我们话不多少,开搞~以下内容,为了方便,我们将配置相关内容改为人员(people)首先,有一点是不会改变的,我们需要自定义一个配置类,用于读取配置文件中的配置。这里,我们需要改变一下我们配置文件信息里。将所有的配置信息放到一个类里。然后,定义一个配置类用来接收,这里通过@ConfigurationProperties
注解实现对配置的注入。要注意,因为我们在peoples下面有很多的people,因此,属性应给定义的是一个MAP的类型。这样,Springboot就会自动加载我们这个配置类。但是,这个的整个PeopleConfigs
是一个Bean,并不能达到我们本文的目的,因此我们进行后续的步骤。我们声明一个运行时的注解,在属性上进行使用。这里定义name用来标记需要注入的是哪个人。首先,定义一个autoConfig的配置类,该类通过@EnableConfigurationProperties
注解,指定PeopleConfig Bean在本类之前进行装载。通过@Bean
方法注解进行bean声明,此处调用的是单个people配置类的bean生成的方法。这里不得不提到BeanPostProcessor
类,该类为我们提供了springBoot在bean初始化前后方便我们进行其他自定义操作的一些接口。我们这里通过实现postProcessBeforeInitialization
方法,在bean装载之前,通过反射判断对应bean上是否有我们自定义的people注解。如果有,则进行注入操作。详细代码如下:前面工作进行完成后,接下来就是我们的使用环节,这里,我们仅需要通过@People(name = "人")
指定即可:以上就是“SpringBoot怎么通过自定义注解实现配置类的自动注入”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。
本文小编为大家详细介绍“ContentProvider启动流程源码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“ContentProvider启动流程源码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。ContentProv…
免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。