Есть много способов получить бобы весной, и я снова подведу это:
Первый тип: сохранить объект ApplicationContext во время инициализации
ApplicationContext ac = new FileSystemxmlapplicationContext ("ApplicationContext.xml"); Ac.getBean ("beanid"); Примечание. Этот метод подходит для автономных приложений с использованием Spring Framework, и программа требует, чтобы программа вручную инициализировать Spring через файлы конфигурации.
Второй тип: Получить объект ApplicationContext через класс инструментов, предоставленный весной
Импорт org.springframework.web.context.support.WebApplicationContextUtils; ApplicationContext AC1 = webApplicationContextUtils.getRequiredWebApplicationContext (ServletContext SC); ApplicationContext AC2 = WebApplicationContextUtils.getWebApplicationContext (ServletContextextextextex sc); ac1.getbean ("beanid"); ac2.getbean ("beanid"); иллюстрировать:
1. Эти два метода подходят для систем B/S, используя Spring Framework, получите объект ApplicationContext через объект ServletContext, а затем получите необходимый экземпляр класса через него;
2. Первый метод бросает исключение, когда сбое сбоя, а второй метод возвращает NULL.
Третий тип: унаследован от абстрактного класса ApplicationObjectSopport
ПРИМЕЧАНИЕ. Метод getApplicationContext (), предоставленный Application Class ApplicationObjectSupport, может легко получить экземпляр ApplicationContext, а затем получить компонент в контейнере Spring. Когда пружина инициализируется, объект ApplicationContext будет вводится с помощью метода SetApplicationContext (ApplicationContext Context) абстрактного класса.
Четвертый тип: унаследован от абстрактного класса WebPplicationObjectSupport
Примечание. Подобно приведенному методу, получите экземпляр WebApplicationContext, вызывая getWebApplicationContext ();
Пятый тип: реализация интерфейса ApplicationContextaware
Описание: Реализовать метод SetApplicationContext (ApplicationContext) метод этого интерфейса и сохранить объект ApplicationContext. Когда пружина инициализируется, объект ApplicationContext вводится через этот метод.
Хотя Spring предоставляет последние три метода для реализации наследования или реализации соответствующих классов или интерфейсов в обычных классах для получения объектов Spring ApplicationContext, при его использовании вы должны обратить внимание на наследство или реализацию этих абстрактных классов или интерфейсов. Или полученный объект ApplicationContext будет нулевым.
Ниже показано, как получить бобы в пружинных контейнерах, внедряя интерфейс ApplicationContextaware:
Во -первых, настройте класс, который реализует интерфейс ApplicationContextAware и реализуйте методы внутри:
package com.ghj.tool;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;public class SpringConfigTool implements ApplicationContextAware {// extends ApplicationObjectSupport{ private static ApplicationContext ac = null; Частный статический SpringConfigtool SpringConfigtool = null; public Synchronized Static SpringConfigtool init () {if (springconfigtool == null) {springconfigtool = new Springconfigtool (); } return SpringConfigtool; } public void setApplicationContext (ApplicationContext ApplicationContext) Throws BeanSexception {ac = ApplicationContext; } public Synchronized Static Object getBean (String Beanname) {return ac.getbean (beanname); }} Во -вторых, настройте его в файле ApplicationContext.xml:
Скопируйте код следующим образом: <bean id = "SpringConfigtool"/>
Наконец, вы можете получить соответствующий боб в пружинном контейнере через следующий код:
Кода -код выглядит следующим образом: SpringConfigtool.getBean ("beanid");
Обратите внимание, что когда сервер запускает инициализацию пружинного контейнера, пружинный контейнер не может быть получен с помощью следующих методов:
Импорт org.springframework.web.context.contextloader; Import org.springframework.web.context.webapplicationContext; WebApplicationContext wac = contextLoader.getCurrentWebApplicationContext (); wac.getbean (beanid);
Выше приведено в этой статье, я надеюсь, что это будет полезно для каждого обучения.