public class TestHelloWorld { public static void main(String[] args) throws FileNotFoundException { //bean的使用 3种方式 //第一种 使用BeanWrapper HelloWorld hello=new HelloWorld(); BeanWrapper bw=new BeanWrapperImpl(hello); bw.setPropertyValue("msg","HelloWorld"); System.out.println(bw.getPropertyValue("msg")); //第二种 使用BeanFactory FileSystemResource is=new FileSystemResource("D:/work/NewWork/spring/src/config.xml"); XmlBeanFactory factory=new XmlBeanFactory(is); HelloWorld helloWorld=(HelloWorld)factory.getBean("HelloWorld"); System.out.println(helloWorld.getMsg()); //第三种 使用ApplicationContext //通过ApplicationContext 来获取Spring的配置文件 ApplicationContext actx=new FileSystemXmlApplicationContext("D:/work/NewWork/spring/src/config.xml"); //通过Bean 的id来获取Bean HelloWorld HelloWorld=(HelloWorld) actx.getBean("HelloWorld"); System.out.println(HelloWorld.getMsg()); } }
这里我有3个System.out 可是 输出结果为一个 HelloWorld
然后 随便注释掉哪两个 剩下的那一个都能成功输出HelloWorld
一开始我以为 是因为 默认的singtelon 然后 把singtelon 关掉
还是不行。 希望有大神指教一下。
下面是我的 config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://WWW.springfamework.org/dtd/spring-beans.dtd"> <beans> <!--定义一个Bean--> <bean id="HelloWorld" class="com.gc.action.HelloWorld" singleton="true"> <!--将其变量msg 通过依赖注入--> <property name="msg"> <value>HelloWorld</value> </property> <property name="date"> <ref bean="date" /> </property> </bean> <bean id="date" class="java.util.Date" /> </beans>