Предисловие
Прежде чем представить экземпляр бобов, нам сначала нужно представить, что такое бобы и как настроить бобы.
Если пружина рассматривается как большая фабрика, то бобы в весеннем контейнере являются продуктом этой фабрики. Чтобы использовать Spring Factory для производства и управления бобами, вам необходимо указать в файле конфигурации, которые необходимы бобы и как их собрать вместе.
Весенний контейнер поддерживает два формата файлов конфигурации, а именно свойства формата файла свойств и формата файла XML. В реальной разработке наиболее часто используемой суммой является формат файла XML. Поэтому в следующем объяснении мы объясним метод конфигурации формата файла XML. Клетевой элемент файла конфигурации XML составляет <Beans>, который может содержать несколько дочерних элементов <Bean>, каждый дочерний элемент определяет бобы и описывает, как бобы должны быть собраны в пружинный контейнер. Свойства в элементе <Bean> следующие:
В файле конфигурации обычно обычный бон должен определить только два атрибута: ID и класс. Способ определения боба заключается в следующем:
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Beans Public "-// Spring // dtd bean // en" "http://www.springframework.org/dtd/spring-beans.dtd"> <Beans> <! id = "userDao"/> <bean name = "userDao1, userDao2"/> </beans>
В приведенном выше коде две бобы определяются с использованием атрибутов идентификатора и имени, а соответствующий класс реализации указан с использованием элемента класса. Если идентификатор и имя не указаны, Spring будет использовать значение класса в качестве идентификатора.
Четыре способа создания экземпляра бобов весной
Эта статья в основном вводит четыре способа создания экземпляров бобов (методов инъекции) или четырех способов полагаться на экстремирование объекта. Приведенная выше программа использует метод создания объектов бобов и использует метод конструктора (Spring может создавать объекты класса при приватизации конструкторов)
Есть четыре общих метода создания:
1) Метод сеттера
2) Конструктор
3) Статическая фабрика
4) Пример фабрики
1. Используйте метод сеттера
публичный интерфейс iuserdao {void adduser (); void deluser (); void UpdateUser (); } открытый класс userDaoImpl реализует iuserdao {public void adduser () {system.out.println («метод adduser был назван»); } public void deluser () {System.out.println ("Deluser был назван"); } public void updateUser () {System.out.println («Метод UpdateUser был назван»); } открытый класс userAction {private iuserdao dao; // DAO - это объект зависимости, которым необходимо управлять Springg, и генерирует метод GET SET Public void Execute () {dao.Adduser (); dao.updateuser (); dao.deluser (); }}// Файл конфигурации <bean name = "userAction_name"> <name = "dao" ref = "userdao_name" /> // Название ссылается ниже < /bean> <bean name = "userdao_name" />
// тест classpathxmlapplicationcontext ctx = new classpathxmlapplicationcontext ("beans.xml"); userAction action = (userAction) ctx.getbean ("userAction_name"); action.execute ();2. Функция конструктора
public Class UserAction {// public userAction () {} Вы можете сохранить конструктор без параметров // Это несколько зависимостей, и нет необходимости генерировать метод GET SET Private UserInfo пользователь; Частная струнная школа; Частный Iuserdao Dao; // Я надеюсь, что весна вводит объект зависимости public userAction (iUserdao dao, userInfo, пользователь, String School) {this.dao = dao; this.school = школа; this.user = user; } public void execute () {dao.adduser (); dao.updateuser (); dao.deluser (); System.out.println (пользователь); System.out.println (School);}// Файл конфигурации <bean name = "userInfo_name"> <name = "id" value = "1" /> <name = "useName" value = "weekly" /> <name = "password" value = "123" /> <name = "note" value = "Это нота" /> < /bean> <bean name_name_name " ref = "userdao_name" /> <constructor-arg ref = "userInfo_name" /> <constructor-arg value = "harbin нормальный университет" /> < /bean> /*Вы также можете указать индекс и свойства типа, ни индекс, ни тип не может быть указан <bean name = "useraction_name"> <constructor-arg index = "ref index =" ref index = ". type = "cat.dao.iuserdao" /> Если это интерфейс, он не может быть указан для типа класса реализации. <constructor-arg index = "1" ref = "userinfo_name" type = "cat.beans.userinfo" /> <contructor-arg Index = "2" name = "userDao_name" />
// тест classpathxmlapplicationcontext ctx = new classpathxmlapplicationcontext ("beans.xml"); userAction action = (userAction) ctx.getbean ("userAction_name"); action.execute ();3. Статический фабричный метод
// Фабрика, класс реализации, используемый для генерации DAO Public Class UserDaOfactory {public static iUserdao createUserDaoInstance () {return new userDaOoracleImpl (); }} public Class userAction {private iUserdao dao; // Использовать фабричный метод, чтобы обратить внимание на значение, а также генерировать метод SET public void execute () {dao.adduser (); dao.updateuser (); dao.deluser ();} public void setdao (iuserdao dao) {this.dao = dao; }}// Файл конфигурации <bean name = "userAction_name"> <name = "dao" ref = "userDao_name" /> < /bean> <bean name = "userDao_name" factory-method = "createUserDainstance" />>
// тест classpathxmlapplicationcontext ctx = new classpathxmlapplicationcontext ("beans.xml"); userAction action = (userAction) ctx.getbean ("userAction_name"); action.execute ();IV Пример фабрики
// factory => public Class userDaOfactory {// Этот метод не является статичным публичным iUserdao createUserDaoInstance () {return new userdaOoracleImpl (); }}// Файл конфигурации <bean name = "userAction_name"> <name = "dao" ref = "userdao_name" /> < /bean> <bean name = "userDaOfactory_name" /> <bean name = "userDao_name" factory-bean = "userDaofActory_name" factory-method = "creationUseRdaNainainainainainainainaineainainainainainainainainainaina
Суммировать
Вышеуказанное - все содержание этой статьи. Я надеюсь, что содержание этой статьи имеет определенную справочную ценность для каждого обучения или работы. Если у вас есть какие -либо вопросы, вы можете оставить сообщение для общения. Спасибо за поддержку Wulin.com.