Задайте вопрос
Инстанция бобов весной является важной частью жизненного цикла бобов. Обычно фасоль не изменяется после инициализации.
Так что же такое процесс пружинного экземпляра? !
Анализ процесса с пружинной экземпляром
Чтобы получить объект бобов, вы должны сначала получить его через метод GetBean () BeanFactory. В течение этого периода будет предпринята серия шагов для создания объекта бобов:
Шаг 1: Вызовите конструктор по умолчанию бобов (конечно, это также могут быть другие указанные конструкторы), чтобы создать экземпляр боба: Bean1.
Шаг 2: Проверьте, вводится ли значение атрибута бобов в файл конфигурации бобов. Если есть инъекция, введите его атрибуты на основе экземпляра Bean1, перезаписывайте оригинальный Bean1, чтобы сформировать новый экземпляр Bean: Bean2.
Шаг 3: Проверьте, реализует ли фасоль интерфейс инициализирующихся. Если этот интерфейс реализован, вызовите метод AfterPropertiesset () для выполнения соответствующих операций на Bean2 и перезаписать Bean2, чтобы сформировать новый экземпляр Bean: Bean3.
Шаг 4: Проверьте, указано ли свойство init-method в файле конфигурации бобов. Если это указано, вызовите соответствующий метод этого свойства и выполните соответствующие операции на Bean3 и, наконец, перезапишите Bean3, чтобы сформировать новый экземпляр: Bean4.
Через вышеупомянутые шаги мы обнаружили, что, когда весны экземпляры бобов, боб постоянно меняется!
Демонстрация кода процесса с пружинной экземпляром
Чтобы лучше проиллюстрировать приведенные выше шаги, см. Следующий код:
Класс сущности:
/*** Класс объектов*/Общедоступный идентификационный идентификатор сотрудников, инициализируемый, issoblebean, beannameaware {private String Id; // Номер работника частной строки; // Имя сотрудника частная строковая секс; // Полу работников частной строки; // Сотрудник по возрасту частной строки {System.out.println ("************ Шаг 1: Вызовите конструктор по умолчанию бобов *************"); this.id = "bean1: g080405214"; System.out.println ("Значение Bean1:" + this); System.out.println ("********* Шаг 2: Проверьте, введено ли значение свойства фасоли в файл конфигурации фасоли ********* {System.out.println ("Значение Bean2:" + this); System.out.println ("************ Стадия 3: Проверьте, реализует ли боб интерфейс инициализируемого чернила ***********"); это. "Bean3: 25"; System.out.println ("Bean3 'Значение:" + this);} public void init () {system.out.println ("************ Шаг 4: Проверьте, указан ли в файл конфигурации боба *********** "Bean3: pecjing"; system.out.println ("bean4's value:" + this);} public void destress () Throws Exception {System.out.println ("************ Служба Stop *********** Bean *********************;); this.beanname = "mybeanName";} public String getId () {return Id;} public void setId (String Id) {this.id = id;} public String getName () {return name;} public void setname (String name) {this.name = name;} public string string stringx stringx (). setSex (String Sex) {this.sex = sex;} public String getAge () {return Age;} public void setage (string age) {this.age = age;} public String getNativeplace () {return Nativeplace;} public void setnativeplace (String intorpleplace) {this.nativeplace = Native Publicplace STRIND STRIND STRIND () {return steport atepArt steport () {return steport steport; Департамент) {this.Department = Department;} public String getBeanName () {return beanname;}@переопределить публичную строку toString () {return "Сотрудник [id =" + id + ", name =" + name + ", sex =" + sex + ", возраст =" + ", коренное место =" + родное место ", департамент =" + ", beanne" + " +", Beannememe egeman = " +" + ", BeanN", BeanN ", BeanN", BeanN ". "]";}}Инструменты:
/** * Bean context tool class */public class BeanContextHelper {private static ApplicationContext _instance;static {if (_instance == null) _instance = buildApplicationContext();}private BeanContextHelper() {}/** * Rebuild the ApplicationContext object*/public static ApplicationContext buildApplicationContext() {return new ClassPathxmlapplicationContext ("ApplicationContext-base.xml");}/*** Получить объект ApplicationContext*/public Static ApplicationContext getApplicationContext () {return _instance;}}Конфигурация бобов весны:
<? xml version = "1.0" Encoding = "UTF-8"?> <Beans xmlns = "http://www.springframework.org/schema/beans" xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance" xmlns: context = "http://www.springframework.org/schema/context" xmlns: aop = "http://www.springframework.org/schema/aop" xmlns: tx = "http://www.springframe.orshema. xsi: schemalocation = "http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.spramework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd. http://www.springframework.org/schema/aop/spring-aop-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd. <!-================ Проверьте процесс создания боба в Spring Beanfactory-> <Bean Id = "employee" init-method = "init" dissult-method = "dissult"> <!-Департамент по умолчанию является отделом R & D-> <property name = "Department"> <value> bean2: r & d Department> </d.
Тестовый класс:
/*** Beanfactory Centantiage Engineering Test Class*/public Class Test {public static void main (string args []) {test test = new test (); test.test ();} public void test () {ApplicationContext = beancontexthelper.getApplicationContext (); context.getbean ("employtee"); System.out.println ("************ Из весны экземпляр окончательного боба, полученный Beanfactory **********"); System.out.println ("Значение окончательного боба:" + usmonceee);}}Результаты работы:
*********** из боба *********************** Значение Bean3: Сотрудник [id = bean1: g080405214, имя = bean3: li xiaohong, sex = bean3: женщина, возраст = bean3: 25, cnietpplace = null, отдел = Bean2: R & D отдел, Beanname = Mybeanname] ********* Шаг 4: Проверьте, является ли инициатором в конфигурации. Этот атрибут ****************** Значение Bean4: Сотрудник [id = bean1: g080405214, имя = bean3: li xiaohong, sele = bean3: женщина, возраст = bean3: 25, коренное место = bean3: beijing, отдел = bean2: r & d Отдел, Beannam Beanfactory ***************
Судя по результатам операции, мы должны быть очень четко понимать конкретный процесс экземпляра бобов.
Сотрудник реализует 3 интерфейса:
Инициализация Bean: Этот интерфейс обеспечивает метод AfterPropertiesset (), который используется для обеспечения бобов с функцией определения инициализации.
OndableBean: Этот интерфейс предоставляет метод Dissome (), который используется для предоставления рабочих функций до уничтожения экземпляра бобов.
Beannameaware: этот интерфейс предоставляет метод SetBeanName (), который используется для обеспечения функции установки имени боба. Из приведенных выше результатов этот метод выполняется на втором этапе.
Суммировать
Вышеуказанное - все содержание этой статьи о процессе создания бобов весной. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на этот сайт:
« Два способа настройки приобретения бобов весной »
" Анализ кода экземпляра на конфигурации пружинной аннотации Java "
« Подробное объяснение жизненного цикла конфигурации пружины и использования »
Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!