基于 Spring Java 的静态方法配置

2024-04-08

任何人都可以请建议为什么我们需要使用 a 来声明 PropertySourcesPlaceholderConfigurer beanstatic方法 ?我刚刚发现,如果我在下面使用非静态,那么 url 将被设置为空值,而不是从属性文件中获取 -

@Value("${spring.datasource.url}")
private String url;

@Bean
public static PropertySourcesPlaceholderConfigurer propertyConfig(String profile) {
    String propertyFileName = "application_"+profile+".properties";
    System.out.println(propertyFileName);
    PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer();
    configurer.setLocation(new ClassPathResource(propertyFileName));
    return configurer;
}   

@Bean
@Profile("local")
public static String localProfile(){
    return "local";
}

@Bean
@Profile("prod")
public static String prodProfile(){
    return "prod";
}

PropertySourcesPlaceholderConfigurer对象负责解决@Value针对当前 Spring 环境及其 PropertySource 集的注释。PropertySourcesPlaceholderConfigurer类工具BeanFactoryPostProcessor。在容器的生命周期中,BeanFactoryPostProcessor对象必须早于以下对象实例化@Configuration-带注释的类。

如果你有@Configuration- 带实例方法的带注释的类返回PropertySourcesPlaceholderConfigurer对象,那么容​​器无法实例化该对象PropertySourcesPlaceholderConfigurer对象而不实例化@Configuration- 带注释的类对象本身。在这种情况下,@Value无法解决,因为PropertySourcesPlaceholderConfigurer对象在实例化时不存在@Configuration-带注释的类。因此,@Value-annotated字段采用默认值,即null.

请参阅“引导”部分@Bean javadoc http://docs.spring.io/spring/docs/4.2.x/javadoc-api/org/springframework/context/annotation/Bean.html了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于 Spring Java 的静态方法配置 的相关文章

随机推荐

  • 用什么来做多重相关?

    我正在尝试使用 python 来计算响应数组和一组预测变量之间的多重线性回归和多重相关性 我看到了计算多元线性回归的非常简单的示例 这很容易 但是如何使用 statsmodels 计算多重相关性呢 或与其他任何东西一起作为替代 我想我可以使
  • 获取程序集的原始源代码位置

    有没有办法获取程序集的位置原始源代码通过反射定位 Warning 我不是在寻找程序集的当前位置 而是在编译源代码时所在的位置 e g Given myAssembly dll c program files myapp myAssembly
  • 我可以创建使用 WPF 显示的 Visual Studio 2010 外接程序吗?

    我们正在致力于为我们的企业应用程序创建专门的图形编辑器 我们研究并拒绝了 DSL 理想情况下 我希望编辑器的主界面像代码窗口一样停靠 并使用 WPF 进行绘图 谁能给我指出一些文档 让我走上正确的道路 Thanks Colin 更新 它开始
  • 无法在 Stripe Webhook 中检索会话的变量值

    我正在我的网站中设置 Stripe 订阅 Webhook 我按照文档进行操作 现在 Webhook 已设置在我的网站中 现在 我希望更新网站数据库上的一条记录 其中在我的一个用户订阅我的会员计划后 记录上的一列被设置为另一个值 我尝试在会话
  • 在散景中使用 x 轴上的月份

    假设我有以下数据 import random import pandas as pd numbers random sample range 1 50 12 d month range 1 13 values numbers df pd D
  • 如何在 MySQL 的子查询中指定父查询字段?

    如何在 MySQL 的子查询中指定父查询字段 例如 我用 PHP 编写了一个基本的公告板类型程序 在数据库中 每个帖子包含 id PK 和parent id 父帖子的id 如果帖子本身就是父帖子 则其parent id 设置为0 我正在尝试
  • 如何检查值是否插入成功?

    我有一个将值插入表中的过程 declare fName varchar 50 lName varchar 50 check tinyint INSERT INTO myTbl fName lName values fName lName E
  • 无法访问反应表中解析的数据

    我知道这个问题在 StackOverflow 上已经被问过几次了 但我还没有让之前的任何答案对我有用 我正在寻找一个react table组件 并允许用户下载当前呈现为 CSV 的过滤数据 我知道我需要使用react csv稍后 但现在我什
  • 如何在Pycharm中启用结构视图的自动刷新?

    如何在结构视图中强制刷新或在 Pycharm 中启用自动刷新 任何代码更新后 单击功能将不再起作用 应跳转到功能代码 唯一的可能性是隐藏和显示视图 但它失去了上下文 我需要再次搜索函数名称 对于较大的代码来说这是个坏主意 None
  • Angular:使用 query() + animate() 时如何保持最终动画状态

    看看这个笨蛋 https plnkr co edit mqwJP75zjTUmsqsqRxfH p preview https plnkr co edit mqwJP75zjTUmsqsqRxfH p preview 这是 Angular
  • Oracle SQL 中仅排除一个 MIN 值

    我试图选择一列中除最低值之外的所有值 GameScore 但是当有两个最低值时 我的代码会排除这两个值 我知道它为什么这样做 我只是不知道如何纠正它 并包括两个最低值之一 代码看起来像这样 SELECT Id SUM Score COUNT
  • 是否有 IEEE-754 操作的开源 c/c++ 实现? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 IEEE 754 操作的参考实现 有这样的事吗 我相信 C 库软浮点 http www j
  • 按属性按优先级排序

    我有想要排序的项目 我的项目在模型上计算了属性 包括winning bidding closed and watching 这些属性中的每一个都是 true 或 false 我想对项目进行排序 以便所有获胜项目位于第一 然后是所有投标项目
  • 忽略 doxygen 注释块中的行

    是否可以在 doxygen 注释块中包含将被 doxygen 忽略的内容 换句话说 我们可以在 doxygen 评论块中发表评论吗 背景 我们正在将 Fortran 项目的代码内注释转换为 doxygen 可解析的格式 但是该项目要求代码内
  • C 中的可变长度数组并就地初始化[重复]

    这个问题在这里已经有答案了 C99 允许定义具有非常量大小的数组 即用于定义数组的大小可以在运行时更改 解释它的代码片段是 void dummy function1 unsigned int length char arrA length
  • 什么是沼泽图?

    有人告诉我沼泽图 解释说它们可以通过测量给定产品的传入缺陷率和传出修复率来预测代码质量 不幸的是 我无法找到有关这些图表的更多信息 我想知道这是否是特定于一家公司的术语 你能解释一下什么是沼泽图吗 您可以在这篇关于 CESR 的调试和性能特
  • 在Python中获取不带扩展名的文件名

    如果我有一个类似于以下之一的文件名 1 1 1 1 1 jpg 1 1 jpg 1 jpg 我怎样才能只获取文件名 而不获取扩展名 正则表达式合适吗 在大多数情况下 您不应该为此使用正则表达式 os path splitext filena
  • 如何在异步管道上使用自定义管道?

    我正在尝试在异步管道上创建自定义管道 我尝试了很多解决方案 但仍然不起作用 这是代码片段 Product sort ts 自定义管道 import PipeTransform Pipe from angular core import Ob
  • Angular 4 属性在构建时的对象类型上不存在

    我正在使用 Angular 构建一个项目 我使用 angular cli 启动了该项目 当我尝试运行时ng build prod我不断收到此错误 对象类型上不存在属性 描述 生成此错误的代码如下 export class AppCompon
  • 基于 Spring Java 的静态方法配置

    任何人都可以请建议为什么我们需要使用 a 来声明 PropertySourcesPlaceholderConfigurer beanstatic方法 我刚刚发现 如果我在下面使用非静态 那么 url 将被设置为空值 而不是从属性文件中获取