Java 将一个类设置为Singleton,而不是每次使用它时都注入该类
我有一个类,在我的项目中用作公共类。该类可以访问该类中注入的其他一些核心类,通过它们我可以调用一些API。因此,当我需要在类中调用API时,我通常会注入这个公共类并使用特定的API。但是当我在许多其他类中注入公共类时,所有的核心类也会被注入,即使我需要使用一个或两个核心类。 这是我的普通课Java 将一个类设置为Singleton,而不是每次使用它时都注入该类,java,api,design-patterns,singleton,Java,Api,Design Patterns,Singleton,我有一个类,在我的项目中用作公共类。该类可以访问该类中注入的其他一些核心类,通过它们我可以调用一些API。因此,当我需要在类中调用API时,我通常会注入这个公共类并使用特定的API。但是当我在许多其他类中注入公共类时,所有的核心类也会被注入,即使我需要使用一个或两个核心类。 这是我的普通课 public class ApiService { private StuResource stuResource; private VendResource vendResource; private E
public class ApiService {
private StuResource stuResource;
private VendResource vendResource;
private EduResource eduResource;
private RKEResource rKEResource;
private AleResource aleResource;
private GloResource gloResource;
@Inject
public ApiService(StuResource stuResource, VendResource vendResource,
EduResource eduResource, RKEResource rKEResource,
AleResource aleResource, GloResource gloResource) {
this.stuResource = stuResource;
this.vendResource = vendResource;
this.eduResource = eduResource;
this.rKEResource = rKEResource;
this.aleResource = aleResource;
this.gloResource = gloResource;
}
{Methods for call APIs}
}
所以我计划使用单例模式,这样我可以一次性创建一个公共类的对象,并且可以在其他类的任何地方使用该对象。
在这个实现中帮助我。在这种情况下,我如何实现单例模式。这根本不是一个好主意-将所有功能放在一个地方 为每个业务流程创建单独的服务,只为它们提供所需的资源。即
@Component
public class SchoolService {
private StuResource stuResource;
private EduResource eduResource;
private GloResource gloResource;
@Inject
public SchoolService(StuResource stuResource, EduResource eduResource, GloResource gloResource) {
this.stuResource = stuResource;
this.eduResource = eduResource;
this.gloResource = gloResource;
}
{Methods for call APIs}
}
然后
等等
这些类中的每一个都是您想要的单例
@Component
public class PayService {
private VendResource vendResource;
private EduResource eduResource;
@Inject
public ApiService(VendResource vendResource, EduResource eduResource) {
this.vendResource = vendResource;
this.eduResource = eduResource;
}
{Methods for call APIs}
}