春季启动应用程序配置

保罗

我了解如何配置spring-boot,它提供了成熟而明智的覆盖机制,该文献已被很好地证明,但是我正在转换一个应用程序,该应用程序从与spring-boot机制不符的其他来源获取其配置。

最终,该应用程序使属性可用于可以使用@Value(“ $ the.prop.key:default”)绑定或在spring xml配置中使用的代码。这些属性的检索和绑定方式无法更改。

我正在尝试配置嵌入式tomcat服务器端口,但是我能做到这一点的唯一方法是使用application.properties。我可以将其更改为其他文件,甚至可以更改位置,但不能更改机制(它必须是文件)。

查看spring-boot代码,我看到它使用EmbeddedServletContainerCustomizer实现的概念来设置这些属性。很好,我将创建一个实现并使用此实现设置服务器属性。但是不幸的是,您有2个实现试图做同样的事情ServerProperties和我的实现。代码对这些命令进行了排序,但是由于ServerProperties尚未对其进行排序,因此将其设置为最低优先级,并且低优先级将在最后执行,因此我的实现将被覆盖。

相反,我实现了一个BeanPostProcessor:

@Named
public class SpringBootCustomConfigurator implements BeanPostProcessor {

@Value("$the.prop.key:8080")
private int port;

@Override
public Object postProcessBeforeInitialization(Object bean, String beanName)
        throws BeansException {
    if (bean instanceof ServerProperties) {
        ServerProperties serverProperties = (ServerProperties) bean;
        serverProperties.setPort(port);
    }
    return bean;
}
}

这确实是我需要做的,但并不是令人满意的实现。有什么想法吗?

戴夫·赛尔(Dave Syer)

由于它是关于外部性的新来源,我认为这将是更自然的书写ApplicationContextInitializer(或ApplicationListener监听在启动春季启动的事件之一),增加了一个新的PropertySourceEnvironment在正确的地方。您可以使用SpringApplication或使用来注册启动META-INF/spring.factories

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

春季启动应用程序配置问题

来自分类Dev

春季启动应用程序无法启动

来自分类Dev

应用程序未能启动春季启动

来自分类Dev

背景工人春季启动应用程序

来自分类Dev

JUnit 春季启动应用程序

来自分类Dev

呼叫春季启动应用程序启动后的方法

来自分类Dev

春季启动应用程序启动时不正确的应用程序名称

来自分类Dev

应用程序配置无效-应用程序无法启动

来自分类Dev

春季启动:仅用于Web应用程序开发吗?

来自分类Dev

transactionAdviser中的NullPointerException(春季启动应用程序)

来自分类Dev

春季-如何从Web应用程序停止和启动Webserice?

来自分类Dev

如何使春季启动MVC Web应用程序的bean注入

来自分类Dev

@事务回滚不是在春季启动应用程序的工作?

来自分类Dev

春季启动读取应用程序属性值

来自分类Dev

在调用@Transactional flush()方法在春季启动应用程序

来自分类Dev

春季启动应用程序无法注册RequestContextListener

来自分类Dev

在春季启动应用程序双击日志文件

来自分类Dev

在春季启动应用程序无法解析符号“安全”

来自分类Dev

弹簧启动应用程序的外部配置

来自分类Dev

启动应用程序配置路径

来自分类Dev

从应用程序启动表盘配置活动

来自分类Dev

春季应用程序安全性配置bean扫描

来自分类Dev

春季启动:启动Webshere Application Server时会自动启动应用程序吗?

来自分类Dev

春季启动应用程序重新启动时,HSQL DB丢失

来自分类Dev

入门映射为MethodArgumentNotValidException暧昧@ExceptionHandler方法,而春季启动应用程序启动

来自分类Dev

春季启动 - 正确的方式应用程序启动之前运行过程中/代码?

来自分类Dev

Android Studio-测试配置启动应用程序

来自分类Dev

与VScode弹簧启动应用程序的运行配置

来自分类Dev

如何配置要以全屏模式启动的应用程序?

Related 相关文章

  1. 1

    春季启动应用程序配置问题

  2. 2

    春季启动应用程序无法启动

  3. 3

    应用程序未能启动春季启动

  4. 4

    背景工人春季启动应用程序

  5. 5

    JUnit 春季启动应用程序

  6. 6

    呼叫春季启动应用程序启动后的方法

  7. 7

    春季启动应用程序启动时不正确的应用程序名称

  8. 8

    应用程序配置无效-应用程序无法启动

  9. 9

    春季启动:仅用于Web应用程序开发吗?

  10. 10

    transactionAdviser中的NullPointerException(春季启动应用程序)

  11. 11

    春季-如何从Web应用程序停止和启动Webserice?

  12. 12

    如何使春季启动MVC Web应用程序的bean注入

  13. 13

    @事务回滚不是在春季启动应用程序的工作?

  14. 14

    春季启动读取应用程序属性值

  15. 15

    在调用@Transactional flush()方法在春季启动应用程序

  16. 16

    春季启动应用程序无法注册RequestContextListener

  17. 17

    在春季启动应用程序双击日志文件

  18. 18

    在春季启动应用程序无法解析符号“安全”

  19. 19

    弹簧启动应用程序的外部配置

  20. 20

    启动应用程序配置路径

  21. 21

    从应用程序启动表盘配置活动

  22. 22

    春季应用程序安全性配置bean扫描

  23. 23

    春季启动:启动Webshere Application Server时会自动启动应用程序吗?

  24. 24

    春季启动应用程序重新启动时,HSQL DB丢失

  25. 25

    入门映射为MethodArgumentNotValidException暧昧@ExceptionHandler方法,而春季启动应用程序启动

  26. 26

    春季启动 - 正确的方式应用程序启动之前运行过程中/代码?

  27. 27

    Android Studio-测试配置启动应用程序

  28. 28

    与VScode弹簧启动应用程序的运行配置

  29. 29

    如何配置要以全屏模式启动的应用程序?

热门标签

归档