当前位置: 首页 > 面试题库 >

Spring 3 @Component和静态工厂方法

司空修贤
2023-03-14
问题内容

如果我正在编写用于创建对象的静态工厂方法,那么如何为该工厂类使用’@Component’批注并指示(带有一些批注)创建该类bean所应使用的静态工厂方法?以下是我的意思的伪代码:

@Component
class MyStaticFactory
{
    @<some-annotation>
    public static MyObject getObject()
    {
        // code to create/return the instance
    }
}

问题答案:

恐怕您目前无法执行此操作。但是,使用Java配置非常简单:

@Configuration
public class Conf {

    @Bean
    public MyObject myObject() {
        return MyStaticFactory.getObject()
    }

}

在这种情况下MyStaticFactory,不需要任何Spring注释。当然,您可以改用优质的XML。



 类似资料:
  • 问题内容: 首先,如果这是一个非常愚蠢的问题,请原谅我,我只是想学习这种语言的核心。我正在阅读《有效的Java》,并且第一章讨论了静态工厂方法与构造方法。他们的利弊。令我困惑的几件事是: 静态工厂方法返回的对象的类是非公共的 -究竟是什么意思? 与构造函数不同,每次调用静态工厂方法都不需要创建新对象 -这是怎么发生的?我仅调用工厂方法来获取新对象,是否将检查方法放入工厂方法中以检查对象是否已存在?

  • 问题内容: 我的应用程序有一个问题,当我登录时,该应用程序崩溃并且出现错误: 我试图弄乱gradle并更改变量。这个问题似乎源于此软件包: 然后,它还引用了以下内容: 这是我的摇篮 关于如何找到纠正错误的方法有任何想法吗? 问题答案: 尝试切换到Java 8兼容性,以对某些库进行适当的除糖处理: 此外,Google JSON API可能更需要。

  • 在Java中是否有一个静态工厂方法来创建队列? 或 但无法找到对队列(或出队列)进行同样操作的方便方法。我找到的唯一解决办法是:

  • 考虑一个场景,我想用一些数据获取,并将其解析为特定类型的对象,例如。免责声明:虽然很长,但这是一个sscce;我的实际项目与猫的声音关系不大:) 要求: 第一个字符表示“动物的类型”。所以 可能指抽象, 可能指。 第二个字符可选地表示“动物的亚型”...除了这些子类型被分组到类别中(就类而言)。所以CS可能是ThaiCat扩展Cat与参数“”,可能是扩展Cat与参数,可能是扩展与参数 中包含其他信

  • 问题内容: 什么是静态工厂方法? 问题答案: 我们避免直接访问数据库连接,因为它们占用大量资源。因此,如果我们低于限制,我们将使用静态工厂方法来创建连接。否则,它将尝试提供“备用”连接,如果不存在则失败,并显示异常。

  • 问题内容: 我熟悉静态工厂方法的概念和好处,如Joshua Bloch的EffectiveJava中所述: 工厂方法具有名称,因此与构造函数不同,您可以拥有多个具有相同签名的工厂方法。 工厂方法不必创建新的对象。他们可以返回先前创建的对象。这对于不可变对象或值对象很有用。 与构造方法不同,工厂方法可以返回其返回类型的任何子类型的对象。 现在,我正在尝试为正在学习Java和OO原理的人员解释静态工厂