首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sping.引导配置.属性和服务层注入

Sping.引导配置.属性和服务层注入
EN

Stack Overflow用户
提问于 2021-12-28 01:27:39
回答 2查看 377关注 0票数 2

我刚开始使用spring依赖注入技术,并且正在努力学习最佳实践。我想知道,将带有@ConfigurationProperties注释的类注入服务层类(用@Service注释)是否是一个好的设计理念。我试图将application.yml中的属性映射到一个配置类,如下所示-

代码语言:javascript
复制
@ConstructorBinding
@ConfigurationProperties(prefix = "application")
class ApplicationConfig(
  val kafka: someDeeplyNestedType = SomeDeeplyNestedObj()
 ) {
       // helper functions
   }

然后在服务层中注入上面的配置类,如下所示-

代码语言:javascript
复制
@Service
@EnableConfigurationProperties(ApplicationConfig::class)
class RestService(val config: ApplicationConfig) {
   init {
      // Reference config object
     // Reference application.yml properties via config object.
   }
}

我很想知道是否可以改进当前的实现--不确定是否可以将configuration类传递给service-layer类。我也很想知道是否有更好的方法来连接ApplicationConfig,而不需要使用EnableConfigurationProperties注释。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-28 16:57:06

它是令人愉快的,记录在案,并且可能是“无与伦比的”(仅限于:“限制” (没有SpEL ->助手函数!?;))。

要使用@ConfigurationProperties bean,可以使用与任何其他bean相同的方式注入它们,如下面的示例所示: @Service公共类MyService {私有的最终SomeProperties属性;.

唯一的问题可能产生于“深度”,而不是“拥有”来自“助手函数”的(config)结构...and可能性。

prefix = "application"“听起来”可疑!

注意:

大部分-几乎所有 spring*引导属性已经是"typesafe",并且在spring-启动-自动配置包中有它们的对象/类表示。

请研究一下“打字章”,同时也凝视着PropertySource抽象

票数 0
EN

Stack Overflow用户

发布于 2021-12-28 06:19:55

没有硬性规则,比如Spring,我们可以在类级别添加@EnableConfigurationProperties和构造型注释。

作为良好实践的一部分,EnableConfigurationProperties或任何配置都应该是配置类或主spring引导类的一部分,因此任何开发人员都可以轻松地找出这些配置,而不是进行任何特定的服务类,然后进行检查。

在您的示例中,yo可以结合@SpringBootApplication注释使用@EnableConfigurationProperties注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70501944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档