У меня есть класс, который отмечен @Singleton.Является beanManager.getReference() потокобезопасным?
Чтобы получить экземпляр этого класса я использую следующий код:
public Object getMySingleton(Class someClass){
Bean bean = (Bean) beanManager.getBeans(someClass).iterator().next();
CreationalContext ctx = beanManager.createCreationalContext(bean);
Object obj =beanManager.getReference(bean, someClass, ctx);
return obj;
}
Пожалуйста, обратите внимание, что getMySingleton не synchronized
. Является ли этот код потокобезопасным? Я имею в виду, что getMySingleton можно вызывать из разных потоков - я получу во всех вызывающих абонентах один и тот же экземпляр Singleton?
Как сервер javaee, я использую стеклянную рыбку и свариваю как контейнер cdi. Тем не менее, я хотел бы получить общий ответ в соответствии с спецификациями java-ee.