图片里的问题是听老师说完以后 提出来的。
请问是这么回事吗?为什么呢?
还有没有这方面的知识点呢?
请大神指教,谢谢!
因为有了路径,spring在启动加载的时候可以通过反射实例化这个属性,但是如果构造方法是私有的,那就不能实例化了。
那不见得,如果这个类只有私有构造函数,就不能调用构造方法,比如
class A
{
private A() {}
}
这些都是java基础
对象统一由Spring来管理,不用再调用构造函数实例化
java代码:
public class QueryRun{
private DataResource ds;
public QueryRun( DataResource dataResource){
this.ds = dataResource;
}
}**
application.xml :
<bean id = 'beanName' class='org.apache.commons.QueryRun' >
<constructor-org name='ds' ref="dataResource" > </constructor-org>
</bean>
这是spring的构造注入方式, 即 类似于 实例化QueryRun beanName = new Query(dataResource); 这一步操作交给Spring的容器进行实例化,
调用方法
@Test
public void test1(){
//获取spring容器
ApplicationContext ac = new ClassPathXmlApplicationContext('application.xml');
//从容器中获取注册bean
QueryRun qr = ac.getBean('beanName');
qr.add();
ar.square();
}
spring IOC 源码分析 注入方式