Java Tutorial/Spring/Xml Bean Factory
Содержание
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>