В этой статье описываются основы управления Spring Bean с примерами. Поделитесь им со всеми для справки, подробности следующие:
1. Используйте метод установки для завершения внедрения зависимостей.
Ниже приведены файлы Bean и beans-config.xml.
public class HelloBean { Private String helloWord //... опустить методы получения и установки};
<?xml version="1.0"coding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="helloBean" > <property name="helloWord"> <value>Привет!Джастин!</value> </property> </боб> </бобы>
общественный класс SpringDemo { public static void main(String[] args) {Resource rs = new FileSystemResource("beans-config.xml"); BeanFactory Factory = new XmlBeanFactory(rs); HelloBean hello = (HelloBean) Factory.getBean(" helloBean"); System.out.println(hello.getHelloWord()); } }
2. Используйте метод конструктора для завершения внедрения.
public class HelloBean { Private String name; Private String helloWord; // Рекомендуется использовать метод построения без параметров public HelloBean() { } public HelloBean(String name, String helloWord) { this.name = name; ; } //...Опустить методы получения и установки}
<?xml version="1.0"coding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="helloBean" > <constructor-arg index="0"> <value>Джастин</value> </constructor-arg> <constructor-arg index="1"> <value>Привет</value> </constructor-arg> </bean> </beans>
общественный класс SpringDemo { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml"); HelloBean hello = (HelloBean) context.getBean("helloBean" System.out.print); ("Имя: "); System.out.println(hello.getName()); System.out.print("Слово: "); System.out.println(hello.getHelloWord());
3. Справочник атрибутов
общественный класс HelloBean {частная строка helloWord; частная дата даты //... опустить методы получения и установки}
<beans> <bean id="dateBean"/> <bean id="helloBean"> <property name="helloWord"> <value>Привет!</value> </property> <property name="date"> < ref bean="dateBean"/> </property> </bean> </beans>
общественный класс SpringDemo { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext("beans-config.xml"); HelloBean hello = (HelloBean) context.getBean("helloBean" System.out.print); (hello.getHelloWord()); System.out.print("Это"); System.out.print(hello.getDate()); System.out.println(".");
4. Автоматическая привязка «поТипу»
Измените файл конфигурации в «Трех» на следующий, чтобы завершить автоматическую привязку атрибутов компонента по типу.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byType"> <property name="helloWord"> <value>Привет!</value> </property> </bean> </фасоль>
5. Автоматическая привязка «поИмени»
Измените файл конфигурации в «Трех» на следующий, чтобы завершить автоматическую привязку атрибутов компонента по имени.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="byName"> <property name="helloWord"> <value>Привет!</value> </property> </bean> </фасоль>
6. Автоматическая привязка «конструктора»
Измените файл конфигурации в «Трех» на следующий, чтобы завершить автоматическую привязку атрибутов компонента в соответствии с методом построения. При установлении отношений зависимости контейнер Spring попытается сравнить тип экземпляра Bean в контейнере и тип параметра связанного конструктора, чтобы убедиться, что тип согласован. Если да, то конструктор будет использоваться для создания примера Bean. . Если его невозможно привязать, создается исключение org.springframework.beans.factory.UnsatisfiedDependencyException.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="constructor"> <property name="helloWord"> <value>Привет!</value> </property> </bean> </фасоль>
6. «автоопределение» автоматической привязки
Измените файл конфигурации в «Три» на следующий, чтобы завершить автоматическую привязку атрибутов bean-компонента. Эта автоматическая привязка означает, что Spring попытается использовать конструктор для обработки установления зависимостей. Если это не сработает, попробуйте использовать byType. class, чтобы установить его зависимости.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect"> <property name="helloWord"> <value>Привет!</value> </property> </bean> </фасоль>
7. Метод проверки зависимостей
При автоматической привязке, поскольку нет возможности четко увидеть, был ли установлен каждый атрибут из файла определения, чтобы убедиться, что определенные зависимости действительно установлены, вы можете установить проверку зависимостей при использовании тега <bean> Defining ". зависимость-проверка", существует четыре метода проверки зависимостей: простой, объекты, все и ни один.
простой: проверяет только, являются ли свойства простых типов (таких как примитивные типы данных или строковые объекты) полными зависимостей.
объекты: проверьте, завершают ли свойства типа объекта зависимость.
all: проверьте, все ли атрибуты являются полными зависимостей.
нет: этот параметр имеет значение по умолчанию, что указывает на то, что зависимости не проверяются.
<beans> <bean id="dateBean"/> <bean id="helloBean" autowire="autodetect" dependeny-check="all"> <property name="helloWord"> <value>Привет!</value> < /property> </bean> </beans>
8. Внедрение объекта коллекции
Для объектов коллекции, таких как массивы, списки, наборы и карты, некоторые объекты должны быть заполнены в коллекцию перед внедрением. Затем, когда объекты коллекции внедряются в необходимые bean-компоненты, они также могут автоматически поддерживаться или генерироваться контейнером IoC Spring. Объекты коллекции и полное внедрение зависимостей.
общественный класс SomeBean {частное String[] someStrArray; частный список someList; частная карта someMap; getSomeStrArray () { return someStrArray; } public void setSomeStrArray (String [] someStrArray) { this.someStrArray = someStrArray; } Общественный Some [] getSomeObjArray () {вернуть someObjArray} Общественный недействительный; setSomeObjArray(Some[] someObjArray) { this.someObjArray = someObjArray; } public List getSomeList() { return someList; } public void setSomeList (List someList) { this.someList = someList; } public Map getSomeMap() { return someMap } public void setSomeMap(Map someMap) { this.someMap = someMap } } public class; Some { частное имя строки; общественная строка getName () { возвращаемое имя; } общественный недействительный setName (имя строки) { this.name = имя; } общественная строка toString () { возвращаемое имя;
<?xml version="1.0"coding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING/DTD BEAN/EN" "http://www.springframework.org/dtd/spring-beans. dtd"> <beans> <bean id="some1"> <property name="name"> <value>Джастин</value> </property> </bean> <bean id="some2"> <property name="name"> <value>momor</value> </property> </bean> <bean id="someBean"> <property name="someStrArray"> <list> < value>Привет</value> <value>Добро пожаловать</value> </list> </property> <property name="someObjArray"> <list> <ref bean="some1"/> <ref bean="some2"/> </list> </property> <property name="someList"> <list> <value>ListTest</value> <ref bean="some1"/> <ref bean="some2" /> </list> </property> <property name="someMap"> <map> <entry key="MapTest"> <value>Привет! Джастин!</value> </entry> <entry key="someKey1" "> <ref bean="some1"/> </entry> </map> </property> </bean> </beans>
public class SpringDemo { public static void main(String[] args) { ApplicationContext context = new FileSystemXmlApplicationContext( "beans-config.xml"); SomeBean someBean = (SomeBean) context.getBean("someBean"); // Получаем тип массива; Объект внедрения зависимостей с отслеживанием состояния String[] strs = (String[]) someBean.getSomeStrArray() Some[] somes =; (Some[]) someBean.getSomeObjArray(); for(int i = 0; i < strs.length; i++) { System.out.println(strs[i] + "," + somes[i].getName() } // Получение объекта внедрения зависимостей типа списка System.out.println(); List someList = (List) someBean.getSomeList(); for(int i = 0; i < someList.size(); i++) { System.out.println(someList.get(i)); // Получаем объект внедрения зависимости типа карты System.out.println(); Map someMap = (Map) someBean.getSomeMap (); System.out.println(someMap.get("MapTest")); System.out.println(someMap.get("someKey1")); }
Я надеюсь, что эта статья будет полезна всем, кто занимается программированием на Java.