Property File based Bean Injection : Properties File « Spring « Java Tutorial






File: context.properties

oracle.(class)=BookwormOracle
encyclopedia.(class)=HardcodedEncyclopedia
oracle.encyclopedia(ref)=encyclopedia

File: Main.java

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

import org.springframework.beans.factory.support.BeanDefinitionReader;
import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;
import org.springframework.core.io.ClassPathResource;

public class Main {
  public static void main(String[] a) {
    DefaultListableBeanFactory bf = new DefaultListableBeanFactory();
    BeanDefinitionReader reader = new PropertiesBeanDefinitionReader(bf);
    reader.loadBeanDefinitions(new ClassPathResource("context.properties"));

    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 HardcodedEncyclopedia implements Encyclopedia {
  private Map<String, Long> entryValues = new HashMap<String, Long>();

  public HardcodedEncyclopedia() {
      this.entryValues.put("AgeOfUniverse", 13700000000L);
      this.entryValues.put("ConstantOfLife", 326190476L);
  }

  public Long findLong(String entry) {
      return this.entryValues.get(entry);
  }
}
  Download:  Spring-PropertyFilebasedBeanInjection.zip( 2,600 k)








28.10.Properties File
28.10.1.Spring Properties File Base Data Injection
28.10.2.Property File based Bean Injection
28.10.3.Properties File Based Spring Bean
28.10.4.IOC With Properties File