小弟基础很薄弱,问的问题如果让你"噗"地笑了,请轻点喷
----------------------------------------------------
对于spring依赖注入这块,当初学的时候没什么,如今用的时候有很多疑问。在一个bean中,如果我有两个属性,private List list, private User user有get ,set方法. user是我自定义的一个类型。那么在配置文件中
<bean id="user" class="com.XX.XX"/><bean id="" class="">
<property name="user" ref="user">
<property name="list">
<list>
<value>hello</value>
<value>world</value>
</list>
</bean>
例子如上,那么问题来了。按照spring文档中的说法:
每个bean的依赖将以属性、构造器参数、或静态工厂方法参数的形式出现。当这些bean被实际创建时,这些依赖也将会提供给该bean。
我们通过factory.getBean("beanName")来获得这个bean时,由容器帮我们实例化这个bean并返回给我们,我说的对吗?那么这个bean中的属性的赋值由容器通过xml中的配置来调用set方法帮我们完成。user属性注入时,我通过<bean id="user" class="com.XX.XX"/>先声明之后,然后容器找到这个类并实例化它然后返回一个指向他引用,接着把这个引用赋值给bean中的user引用,那么list属性不是简单数据类型,容器使用set注入时,应该也是先生成一个实例返回一个引用然后将该引用赋值给list.自定义类型的属性我们要在配置文件中声明如user,list是Java内置类型,我们没声明,那么容器实例化时它怎么知道我是要ArrayList还是LinkedList类型的呢。我打印了下list.getClass();结果是ArrayList,那么如果我要LinkedList呢。
大婶们看的辛苦了,如果您看了之后有些话不吐不快,那么就喷出来吧,别憋着