Spring bean dependency Demo : Dependency Injection « Spring « Java






Spring bean dependency Demo

       
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"
       xsi:schemaLocation="
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="b" class="B" depends-on="a"/>
    <bean id="a" class="A"/>

</beans>


File: Main.java

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.Set;

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

public class Main {


  public static void main(String[] args) {
      XmlBeanFactory bf = new XmlBeanFactory(new ClassPathResource("context.xml"));

      B b = (B) bf.getBean("b");
      A a = (A) bf.getBean("a");
      System.out.println(a);
      System.out.println(b);
  }
}
final class Shared {
  private static Object value = null;
  private Shared() {

  }

  public synchronized static void setValue(Object o) {
      value = o;
  }

  public static Object getValue() {
      return value;
  }
}


class A {

  public A() {
      Shared.setValue("Undetermined");
  }

  @Override
  public String toString() {
      final StringBuilder sb = new StringBuilder();
      sb.append("A");
      sb.append("{}");
      sb.append("Shared.getValue()=").append(Shared.getValue()).append("}");
      return sb.toString();
  }
}


class B {

  public B() {
      Shared.setValue("Completed");
  }

  @Override
  public String toString() {
      final StringBuilder sb = new StringBuilder();
      sb.append("B");
      sb.append("{}");
      sb.append("Shared.getValue()=").append(Shared.getValue()).append("}");
      return sb.toString();
  }
}




           
       








Spring-Spring-beandependencyDemo.zip( 2,600 k)

Related examples in the same category

1.Setter Dependency Injection Demo
2.Contextualized Dependency Lookup Demo
3.Dependency Injection Demo