【问题标题】:Real world advantage of using Spring BeanFactoryPostProcessor使用 Spring BeanFactoryPostProcessor 的真实世界优势
【发布时间】:2020-11-07 12:43:58
【问题描述】:

我了解 BeanFactoryPostProcessor 的用法,我们可以通过编写实现 BeanFactoryPostProcessor 的自定义类来修改 bean 定义的元数据。但是当我可以在 spring xml 本身中简单地更改元数据值时,我无法理解通过 BeanFactoryPostProcessor 更改元数据值的原因或优势是什么。

【问题讨论】:

    标签: java spring spring-mvc spring-security spring-data


    【解决方案1】:

    你可能想修改你拉入的库中的 spring 配置并且无法控制:)

    【讨论】:

      【解决方案2】:
      • 让我们以PropertyPlaceholderConfigurer BeanFactoryPostProcessor 为例,它是spring 本身使用的。它允许在成为具体的 bean 定义之前修改以下 bean 定义(即${jdbc.url} 替换为正确的值)
         <bean id="dataSource">
           <property name="url" value="${jdbc.url}" />
         </bean>
      
      • 没有它,您必须为每个环境定义许多不同的 bean,例如 teststageproduction 和不同的配置文件来激活它们。然后你有安全问题,因为你必须在定义中存储生产数据库 url。

      • 这只是一个简单的例子,spring 本身使用了很多BeanFactoryPostProcessor 实现。检查他们通过

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-12-07
        相关资源
        最近更新 更多