Mega Code Archive

 
Categories / Java Tutorial / Spring
 

XML Based Bean Configuration

File: context.xml <?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:util="http://www.springframework.org/schema/util"        xsi:schemaLocation="                 http://www.springframework.org/schema/beans                 http://www.springframework.org/schema/beans/spring-beans.xsd                 http://www.springframework.org/schema/util                 http://www.springframework.org/schema/util/spring-util.xsd">     <bean id="encyclopedia"           name="knowitall"           class="ConfigurableEncyclopedia">         <constructor-arg>             <util:map>                 <entry key="AgeOfUniverse" value="13700000000"/>                 <entry key="ConstantOfLife" value="326190476"/>             </util:map>         </constructor-arg>     </bean>     <bean id="oracle" class="BookwormOracle">         <property name="encyclopedia" ref="knowitall"/>     </bean> </beans> File: Main.java import java.util.Map; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; import org.springframework.util.Assert; public class Main {   public static void main(String[] a) {     XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("context.xml"));     Oracle oracle = (Oracle) bf.getBean("oracle");     System.out.println("Meaning of life is " + oracle.defineMeaningOfLife());   } } interface Oracle {   String defineMeaningOfLife(); } interface Encyclopedia {   Long findLong(String entry);    } class BookwormOracle implements Oracle {   private Encyclopedia encyclopedia;   public String defineMeaningOfLife() {       Long ageOfUniverse = this.encyclopedia.findLong("AgeOfUniverse");       Long constantOfLife = this.encyclopedia.findLong("ConstantOfLife");       return String.valueOf(ageOfUniverse / constantOfLife);   }   public void setEncyclopedia(Encyclopedia encyclopedia) {       this.encyclopedia = encyclopedia;   } } class ConfigurableEncyclopedia implements Encyclopedia {   private Map<String, Long> entries;   public ConfigurableEncyclopedia(Map<String, Long> entries) {       Assert.notNull(entries, "The 'entries' argument cannot be null.");       this.entries = entries;   }   public Long findLong(String entry) {       return this.entries.get(entry);   } }