上次在解决莫名的sql语句的时候,突然发现自己能领会到spring深层次一些的东西了😀。但是又了解的不多,之前大学学过但是可能用的不深入,大多都忘完了😅。突然就感觉,哦,是时候深入系统学习了😁
在查找了一些资料后,我找到了这个豆瓣评分很高但又绝版很贵且很老的书。
如果一年前,我或许不会阅读这么老的书。我会想,嘿,girl。那里的东西都过时了,我们还是去找找新家伙吧😂。但是最近不知道怎么的,我觉得其实本质思想虽有变化,但是还是有许多保留的🎈。
读一些经典的书,也是很棒的。😎
那,就让我们一起开始这场冒险之旅吧~😉
文章目录- IoC是什么
- IoC的理念
- IoC注入方式
- 构造方法注入
- setter注入
- 接口注入
- IOC作用
- IoC Service Provider
- 管理对象间的依赖关系
- 1 配置文件
- 2 元数据方式
让专人为你服务。而不是你事必躬亲。
事必躬亲是这样的:
如何通知专人?
有三种方式,分别是构造方法注入、setter注入、接口注入
构造方法注入前两种这样听,可能不理解。但是如果换种描述你可能会豁然开朗。构造方法注入,就是将注入的对象当做类的一个属性,然后在构造函数里,用this赋值
setter注入将对象作为类的一个属性,然后为其赋值。
接口注入我看了网上目前流行的java代码,和我们公司前辈写的。貌似不需要配置文件了。而且看起来还挺好用的。
在我看来,这大致是用于不清楚调用类的情况。
代码类似这样
#先获取bean的名字
String beanId = teacher;
#然后获取相应bean的对象
Object object = applicationContext.getBean(beanId);
#然后用接口去向上转型(应该是这个说法吧)
Person person = (Person)object;
#然后person调用的就是teacher的方法啦
我认为这里机器类似于向上转型,你可以这样理解:
package 接口依赖注入;
public interface Person {
String getPerson(String name);
}
package 接口依赖注入;
public class Teacher implements Person{
public String getPerson(String name) {
return name;
}
}
package 接口依赖注入;
public class MainTest {
public static void main(String[] args) {
Teacher teacher = new Teacher();
Person person = (Person)teacher;
System.out.println(person.getPerson("小红"));
}
}
IOC作用
帮助我们解耦各业务对象间依赖关系:因为我们本来是直接调用对象,现在对象继承接口一致就可以了。
IoC Service Provider在Ioc是什么里可以看到,如何注入。但是注入的是个对象,那么肯定需要先有这个对象,即new。
不想new怎么办呢?IoC Service Provider来帮忙啦~
IoC Service Provider有两个作用:业务对象的构建管理和业务对象间的依赖绑定。
单听这两个词是比较晦涩的,起码菜鸡作者这么认为。
但是如果这样呢?我们回到new 对象。他看似只有一步 *** 作,其实是两步。
-
1 选定一个要注入的类(业务对象间的依赖绑定)
-
2 在类里面new一个要注入的对象 (业务对象的构建管理)
有三种:直接编码、配置文件、元数据。第一种我没有见过,就不班门弄斧了,下面了解一下后两种。
1 配置文件不知道你是否有什么不美好的回忆出现。最新的spring一般都用注解代替了。
但是老版本的spring,你如果忘了一个配置文件,那也算是一场小灾难了吧。
空指针,业务无法进展,怎一个惨字了得。具体配置类似这样。
这样说,可能陌生些。但回想一下满目的@Autowired
,是不是熟悉很多呀
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)