XML Based Bean Configuration : XML Bean « Spring « Java Tutorial






File: Main.java

import java.util.HashMap;
import java.util.Map;

import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;

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("A");
      Long constantOfLife = this.encyclopedia.findLong("C");
      return String.valueOf(ageOfUniverse / constantOfLife);
  }

  public void setEncyclopedia(Encyclopedia encyclopedia) {
      this.encyclopedia = encyclopedia;
  }
}


class HardcodedEncyclopedia implements Encyclopedia {
  private Map<String, Long> entryValues = new HashMap<String, Long>();

  public HardcodedEncyclopedia() {
      this.entryValues.put("A", 1L);
      this.entryValues.put("C", 3L);
  }

  public Long findLong(String entry) {
      return this.entryValues.get(entry);
  }
}

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" class="HardcodedEncyclopedia"/>

    <bean id="oracle" class="BookwormOracle">
        <property name="encyclopedia" ref="encyclopedia"/>
    </bean>



</beans>
  Download:  Spring-XMLBasedBeanConfiguration.zip( 2,600 k)








28.4.XML Bean
28.4.1.XML Bean Injection with namespace
28.4.2.BeanName Aware
28.4.3.XML Based Bean Configuration
28.4.4.Required Property Not Set Exception
28.4.5.Method Loopup
28.4.6.Local Reference
28.4.7.Inheritance Demo
28.4.8.Get Method By Name
28.4.9.Factory Object Integration
28.4.10.Spring factory method
28.4.11.Factory Bean Demo
28.4.12.Autowiring
28.4.13.Annotation Component
28.4.14.Annotated Autowiring
28.4.15.Alias Bean Demo
28.4.16.After Returning Advice Demo