Property File based Bean Injection
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); } }
1. | Spring Properties File Based Data Injection | ![]() | |
2. | IOC With Properties File | ![]() | |
3. | DependencyPull Demo | ![]() |