Java/Spring/IoC Singleton

Материал из Java эксперт
Перейти к: навигация, поиск

Achieving Singleton in IoC

   <source lang="java">

/* Pro Spring By Rob Harrop Jan Machacek ISBN: 1-59059-461-4 Publisher: Apress

  • /

/////////////////////////////////////////////////////////////////////////////////////// //File: beans.xml <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>


   <bean id="nonSingleton" class="java.lang.String" singleton="true">
       <constructor-arg>
           <value>Value</value>
       </constructor-arg>
   </bean>

</beans>

/////////////////////////////////////////////////////////////////////////////////////// import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; public class NonSingleton {

   public static void main(String[] args) {
       BeanFactory factory = new XmlBeanFactory(new FileSystemResource(
               "build/beans.xml"));
       
       String s1 = (String)factory.getBean("nonSingleton");
       String s2 = (String)factory.getBean("nonSingleton");
       
       System.out.println("Identity Equal?: " + (s1 ==s2));
       System.out.println("Value Equal:? " + s1.equals(s2));
       System.out.println(s1);
       System.out.println(s2);
   }

}


      </source>
   
  
 
  



Non Singleton

   <source lang="java">

/* Pro Spring By Rob Harrop Jan Machacek ISBN: 1-59059-461-4 Publisher: Apress

  • /

/////////////////////////////////////////////////////////////////////////////////////// //File: beans.xml <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans>


   <bean id="nonSingleton" class="java.lang.String" singleton="false">
       <constructor-arg>
           <value>Value</value>
       </constructor-arg>
   </bean>

</beans>

/////////////////////////////////////////////////////////////////////////////////////// import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.FileSystemResource; public class NonSingleton {

   public static void main(String[] args) {
       BeanFactory factory = new XmlBeanFactory(new FileSystemResource(
               "build/beans.xml"));
       
       String s1 = (String)factory.getBean("nonSingleton");
       String s2 = (String)factory.getBean("nonSingleton");
       
       System.out.println("Identity Equal?: " + (s1 ==s2));
       System.out.println("Value Equal:? " + s1.equals(s2));
       System.out.println(s1);
       System.out.println(s2);
   }

}


      </source>