之前问过类似的问题
大概知道了autowired的好处
比如说
Spring @Autowired 搭配 @Qualifier 指定注入的Bean
重点在 依赖于接口 而不依赖于实作
这样抽换的时候就会方便很多
但是还是有一个地方不太懂
就是说如果有层层的依赖关系的话
没有autowired就会出现 一层层的new 建构子出现
但是我自己举了几个例子
并没有出现一层层 new的建构子
之前软件版有人回答过我,但是那连结已经失效了QQ
假设Service1 依赖于 Dao1 ,Dao1又依赖于Dao11和Dao22好了
以下是我的测试CODE
1. Dao11
public class Dao11 {
public void sayhi() {
System.out.println("hi");
}
}
2.Dao22
public class Dao22 {
public void sayhi2() {
System.out.println("hi fomr dao22");
}
}
3. Dao1
public class Dao1 {
// private Dao11 dao11;
Dao11 dao11=new Dao11();
Dao22 dao22=new Dao22();
public void sayhifromDao1() {
dao11.sayhi();
dao22.sayhi2();
}
}
4. Service1
public class Service1 {
Dao1 dao1=new Dao1( );
public void sasdf() {
dao1.sayhifromDao1();
}
}
5. Main Class
public class MainDriver {
public static void main(String[] args) {
Service1 service=new Service1();
service.sasdf();
}
}
我的疑惑是不管我的Service依赖了几层东西
最后都是非常干净清爽的
一行 new Service1 ();
并且是空的建构子,就可以做到
那这样就我的理解,是不是只要我没有宣告
field在class里面
意思就是我没有宣告
// private Dao11 dao11; 在Dao1 里面
不管我的Service1 依赖多少东西 ,最后都可以用空的建构子new出来
并且保证功能正常运行
第二个问题是
怎么样造出那些
真的会有需要 层层 new的例子
这方面想不太出来
谢谢JAVA版
这几天又一直疯狂纠结这件事....