Вы можете думать о Spring как о фабрике, которая может создавать объекты для вас. Эти объекты называются «бобами» в весеннем мире.
Итак, обычно бобы не имеют доступа к фабрике, которая их создала.
Например, подумайте о фабрике, которая производит «автомобили» как у тойоты форда. С точки зрения OOP, вы можете «купить» или «вести» автомобиль (экземпляр класса Car), но этот завод создает этот экземпляр (делает new Car
). Поскольку фактическая машина управляется весной, это боб. Теперь, если вы описываете автомобиль как класс в Java, не имеет смысла иметь что-то подобное, верно?
@Component
public class Car {
...
private CarFactory carFactory;
}
Так что Spring уже «скрывает» завод для вас, и у вас есть класс Car «чистый» шаблон.
Теперь, что касается самого контекста приложения. Это на самом деле эта фабрика - и, как уже говорили наши коллеги, вам не следует использовать ссылку на контекст приложения в ваших компонентах.
Если вам это действительно нужно, вы можете добавить контекст приложения, но тогда не будьте статичны c, и в целом лучше получить к нему доступ из классов @Configuration
, которые должны обеспечивать возможность создания bean-компонентов более гибкими способами.