Рассмотрим следующий класс Spring Service. Определенная область Spring - Singleton. Две служебные beans автоматически подключенные как поля в классе ниже имеют схожую структуру - они также состоят из полей, которые являются либо следующими из
- Spring beans сами
- классы без сохранения
- неизменяемые классы
и т.д. Этот шаблон в целом используется в дизайне приложения.
@Service
public class DocumentService {
private final DocumentGenerationService documentGenerationService;
private final DocumentPublishService documentPublishService;
@Autowired
public DocumentService (DocumentGenerationService documentGenerationService,
DocumentPublishService documentPublishService) {
this.documentGenerationService = documentGenerationService;
this.documentPublishService = documentPublishService;
}
... methods follow
Правильно ли говорить, что класс DocumentService является неизменным, поскольку невозможно изменить ни одно из его двух полей (которые Spring beans, которые могут быть инициализированы только один раз самим контейнером)?
В любом случае, может ли DocumentService bean, как определено выше, считать потокобезопасным? И если этот проект соблюден, приложение в целом также является потокобезопасным?