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

通过方法调用与新操作符获取Spring bean

訾安邦
2023-03-14
@Component
public class Example{ }
@Component
public class Example {
    @Bean DataSource sqlDataSource() {
         // some logic
    }
    @Bean @Scope("prototype") SomeObject getSomeObject() {
         return new SomeObject(sqlDataSource()); //**
    }

}

请帮忙。

共有1个答案

扶隐水
2023-03-14

@bean是一个方法级注释,指示Spring在调用该方法时创建bean。它意味着具有与XML配置中的tag相同的功能。

这个注释必须在@configuration注释类中使用,否则,如果从另一个方法调用该方法,它将是一个普通的java新操作,而不是Spring的。使用@configuration在类内查看这个post-->@bean并将其删除

记住这一点,新的SomeObject(sqlDataSource());将等于new SomeObject(new SqlDataSource());

 类似资料:
  • 有人能告诉我用两种不同的方法调用同一个函数的区别,以及编译器在这两种情况下到底做了什么;比如:

  • 问题 你有一个字符串形式的方法名称,想通过它调用某个对象的对应方法。 解决方案 最简单的情况,可以使用 getattr() : import math class Point: def __init__(self, x, y): self.x = x self.y = y def __repr__(self): return 'P

  • 问题内容: 我想得到调用方法。 不是 方法的名称。 这是一个如何获取调用方类的示例。 仅用于测试目的! 问题答案: 如果仅用于测试,则可能有效。它假定可以通过调用类的类访问类文件,并且类文件已使用调试符号进行编译(我希望它们用于测试!)。此代码依赖于ASM字节码库。

  • 问题内容: 我们公司有一个基于Python的网站和一些基于Python的工作程序节点,它们通过Django / Celery和RabbitMQ进行通信。我有一个基于Java的应用程序,需要将任务提交给基于Celery的工作人员。我可以将作业从Java发送到RabbitMQ很好,但是基于Celery的工作人员从来没有接过工作。从查看两种类型的作业提交的数据包捕获来看,存在差异,但是我无法理解如何解释

  • 问题内容: 如果我在字符串中有一个对象和一个方法名称,该如何调用该方法? 问题答案: 使用内置功能: 您还可以用于通过名称设置类属性。

  • 本文向大家介绍Postgresql 通过出生日期获取年龄的操作,包括了Postgresql 通过出生日期获取年龄的操作的使用技巧和注意事项,需要的朋友参考一下 三个基础的时间表示函数 CURRENT_DATE/CURRENT_TIME/NOW() SELECT CURRENT_DATE ; 返回当前日期以 年-月-日(yyyy-MM-dd)的形式: 2019-01-10 SELECT CURREN