当前位置: 首页 > 知识库问答 >
问题:

自带和重用“spring定义的”属性

柯昱
2023-03-14

我有一个简单的问题,但我在文档中找不到任何关于它的东西,也找不到任何示例

我有一个使用RabbitMQ和spring boot AMQP模块的spring boot项目。我正在使用一个特定的交换和springJackson2JSONMessageConverter,所以我想我需要定义我自己的RabbitTemplatebean(在这一点上,如果有人知道是否可以用另一种更简单的方法来完成,欢迎您)。

@Bean
RabbitTemplate myAwesomeTemplate() {
    RabbitTemplate rabbitTemplate = new RabbitTemplate();
    rabbitTemplate.setExchange(myBeautifulExchange);
    rabbitTemplate.setRoutingKey("legendary");
    rabbitTemplate.setMessageConverter(new Jackson2JsonMessageConverter());
    rabbitTemplate.setConnectionFactory(connectionFactory());
    return rabbitTemplate;
}

这里对我来说真正的问题是,我还必须定义一个CachingConnectionFactorybean,只是为了将其设置为模板,但似乎CachingConnectionFactory已经由spring的RabbitAutoConfiguration类定义了,所以我想知道我是否可以在我的类中简单地做到这一点:

@Autowired
CachingConnectionFactory cachingConnectionFactory

但是Intellij一直抱怨,因为它找不到那个bean的定义,好像是什么定义顺序问题什么的……当我以这种方式启动项目时,它似乎还可以,但我不喜欢Intellij抱怨,这就好像我在做一些“不是标准方式”的事情。

提前谢谢大家!抱歉解释得太长了。

ps:如果我只想自动连接spring的rabbitpropertiesbean并使用主机、用户名和密码属性(分别为Spring.rabbitmq.hostSpring.rabbitmq.usernameSpring.rabbitmq.password),则会出现同样的问题。

共有1个答案

寿翰飞
2023-03-14

但Intellij一直抱怨,因为它找不到定义……我不喜欢Intellij抱怨,就像我在做一些“不是标准方式”的事情。

您可以尝试通过将它添加到工厂方法并使用参数注入来愚弄它...

@Bean
RabbitTemplate myAwesomeTemplate(ConnectionFactory rabbitConnectionFactory) {
    ...
}

财产也是一样。

任何一种方式(@autowired或这一种)都是“标准方式”。

如果它还抱怨,我建议你和Jetbrains谈谈。

 类似资料:
  • 我在我的SpringBoot应用程序中使用SpringCloud配置,我需要编写一些自定义代码来处理属性,当属性被标记为这样时,这些属性将从我的公司密码库中读取。我知道SpringCloud支持Hashicorp Vault,但在这种情况下不是这样的。 我不想硬编码从不同的源检索特定的属性,例如,我会为应用程序创建一个属性文件,其中profile的值为: 但对于其他一些配置文件,如,我会: 因此,

  • 在我的项目中有2个资源属性 1.application.properties 2. 应用开发.性能 此类使用开发的值属性 我使用 application-development.properties 作为我的项目资源 因此,我使用以下命令运行该项目: < code > mvn spring-boot:run-D spring . profiles . active = development 但是

  • 我使用的是带有默认属性文件的Spring Boot2.0。我想把它拆分到不同的属性文件中,因为它变得很大。 我还想编写测试来检查属性的正确性:将在生产应用程序上下文(而不是测试上下文)上显示的值。 下面是我的属性文件:src/main/resources/config/custom.yml 但是测试失败并出现错误: 此外,通过在中打印应用程序,我看到在运行应用程序时,属性值为。 当我对所有属性使用

  • 我们正在使用spring和Spring-Security-3.2。最近,我们向RESTAPI添加了注释@preauthorize(以前是基于URL的)。 我们已经有了用-@ControllerAdvice和自定义的PermissionEvaluator注释的全局异常处理程序,除了错误消息之外,其他一切都正常工作。 是否可能抛出一个包含权限名称的异常,所以最终的错误消息应该是“Access Is d

  • 我已经用自定义注释注释了Spring bean,但似乎Spring在创建bean后删除了我的自定义注释。 第二步不行,我的自定义注释丢失了。(可能是到期的代理文件) 我的豆子 我的一个自定义注释的示例 findAndDoStuffWithAnnotatedThings Bean中出错的内容被传递到一个类,在该类中,我的自定义注释得到验证,但我的验证程序找不到任何注释。(Util使用isAnnota

  • 当使用自定义重定向URL配置Spring security时,该URL使用基本URI模板变量,如下所示:https://docs.Spring.io/Spring-security/site/docs/5.2.12.release/reference/html/oauth2.html#oauth2client-auth-code-redirect-uri 应用程序进入了太多重定向的循环。 此配置工