<bean id="helloword" class="HelloWord"><property name="name" value="张三"></property></bean>
以上bean的配置的解读:class="HellloWord"是通过反射获取了一个同样的类的实例.而id="helloword",则是创建了一个bean,这个bean的名称是"helloword",被IOC容器管理的对象都称为bean.之后<property name="name" value="张三"></property>就是相当于setName()方法去设置属性的值
其实以上的代码可以对应了我们常规的用new去创建一个对象是一个原理的.比如:HelloWord helloword = new HelloWord();
new HelloWord();获得一个实例化对象,以上的代码是通过反射去获得的.再把这个实例化对象赋给要新建的那个对象.以上是新建一个bean,其实也是在新建一个对象而已,id则是这个新建的对象的名称.所以原理都是一样的.
从以上的解释中,是不是。
getBean(Class<T> type)要求类型唯一,就是指只能一个类型一个对象。原因是他是根据反射实例化的对象去找新建的对象的。所以出现多个新建对象他不知道是哪一个
比如:HelloWord helloword1 = new HelloWord();
HelloWord helloword2 = new HelloWord();
通过new HelloWord()的有两个对象,去找会出现helloword1 和helloword2两个。
而getBean(String name,Class<T> type)
相当于 通过new HelloWord()去找名为helloword1 或者helloword2的做到一对一。
是不是这样理解的(我这是把bean标签里面的抽出来类比的讲了一下思路)