假设我在 Spring 中使用 ApplicationContext 实现。
ApplicationContext 是 Java Spring Framework 中的一个接口,我无法更改它。
如何确保此实现只能有一个实例?
例如。我有以下代码 -
public class ApplicationContextSingleton
{
private static ApplicationContext context;
private static int numberOfInstances = 0;
public static ApplicationContext getApplicationContext()
{
if(numberOfInstances == 0)
{
context = new ClassPathXmlApplicationContext("spring.xml");
numberOfInstances++;
}
return context;
}
}
这样,我可以确保只有一个 ApplicationContext 实例,前提是它的获取方式如下 -
ApplicationContext context = ApplicationContextSingleton.getApplicationContext();
但这并不能阻止另一个程序员说——
ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
从而创建一个新的ApplicationContext。如何防止这种情况发生?