Java Tutorial/Spring/Xml Bean Factory

Материал из Java эксперт
Перейти к: навигация, поиск

Add addBeanPostProcessor To XmlBeanFactory

File: context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

   "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 <bean id="w" class="java.lang.String">
 </bean>

 <bean id="beanInitLogger" class="BeanInitializationLogger"/>

</beans></source>





Add BeanFactory PostProcessor To XmlBeanFactory

File: context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

   "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 <bean id="w" class="java.lang.String">
 </bean>

 <bean id="allBeansLister" class="AllBeansLister"/>

</beans></source>





BeanFactory Aware

File: context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd">
   <bean id="logging" class="LoggingBean"/>
   <bean class="ShutdownHookBean"/>

</beans></source>





Compare Beans From Factory Bean

File: context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd">
   <bean id="sha" class="MessageDigestFactoryBean">
       <property name="algorithm" value="SHA1"/>
   </bean>
   <bean id="md5" class="MessageDigestFactoryBean"/>
   

</beans></source>





Create XmlBeanFactory from ClassPathResource

File: context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd">
   <bean id="logging" class="LoggingBean"/>

</beans></source>





Hierarchical BeanFactory Demo

File: injectdemo2-context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="
               http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd">
   <bean id="name" class="java.lang.String">
       <constructor-arg value="My Value 1"/>
   </bean>
   <bean id="injectSimpleParent" class="InjectSimpleDemo">
       <property name="name" ref="name"/>
       <property name="age" value="2"/>
       <property name="height" value="0.8"/>
       <property name="isProgrammer" value="false"/>
       <property name="ageInSeconds" value="63072000"/>
   </bean>

</beans></source>





Non Static Factory

File: context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

   "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 <bean id="nonStaticFactory" class="NonStaticFactory"/>
 <bean id="testBeanObtainedViaNonStaticFactory"
       factory-bean="nonStaticFactory" factory-method="getTestBeanInstance"/>

</beans></source>





Static Factory

File: context.xml



   <source lang="java">

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"

   "http://www.springframework.org/dtd/spring-beans.dtd">

<beans>

 <bean id="testBeanObtainedViaStaticFactory"
       class="StaticFactory" factory-method="getTestBeanInstance"/>

</beans></source>





Xml Bean Factory Demo

File: Main.java



   <source lang="java">

import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; public class Main {

 public static void main(String[] args) throws Exception {
   XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("context.xml"));
   System.out.println(factory.getBean("simple1"));
 }

} class SoutSimpleBean extends SimpleBeanSupport {

 private String person;
 public void setPerson(String person) {
   this.person = person;
 }
 @Override
 public String toString() {
   return String.format("%s : \"%s\"", this.person, getValue());
 }

} abstract class SimpleBeanSupport implements InitializingBean {

 private String value;
 public final void afterPropertiesSet() throws Exception {
 }
 public final void setValue(String value) {
   this.value = value;
 }
 protected final String getValue() {
   return this.value;
 }

}</source>