gpt4 book ai didi

java - 如何在java中访问单例并为其命名?

转载 作者:行者123 更新时间:2023-12-02 01:06:28 26 4
gpt4 key购买 nike

我想在 Java 中创建一个单例,它需要从文件配置中读取数据以进行实例化,以及其他逻辑(因此它不仅仅是一个新的 MySingletonObject())。

在 Spring 中实现这一目标的正确方法是什么?我想知道我是否应该执行以下操作:

public interface MySingletonObjectAccessor {
MySingletonObject getInstance();
}

@Service
public class MySingletonObjectAccessorImpl implements MySingletonObjectAccessor {
private MySingletonObject mySingletonObject;
@Override
public MySingletonObject getInstance() {
return mySingletonObject;
}

MySingletonObjectAccessorImpl() {
this.MySingletonObject = // complex logic here, that includes reading from a config file

}
}

用法将是:

@Autowired
MySingletonObjectAccessor msoa;

MySingletonObject mso = msoa.getInstance();

我走在正确的道路上吗?如果是这样,MySingletonObjectAccessor 服务的正确命名约定是什么?

最佳答案

您可以定义一个 Bean 并添加一个范围以使其成为单例。

    @Configuration
class MySingletonBeanConfiguration {

//default is singleton scope
@Bean
public MySingletonBean mySingletonBean() {
return new MySingletonBean();
}
}

关于java - 如何在java中访问单例并为其命名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59983984/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com