Spring这个东东,虽然会用,但是总停留在运用的层面上不能够行呀,于是就搜索到比较公认推荐的这本《Spring揭秘》。
书中的第一章当然是日常的Spring历史和发展的介绍了,我就不啰嗦这些文学知识啦
Spring的核心知识就是IoC(全称是Inversion of Control),中文的意思呢,就是“控制反转”,其实很简明的道出了IoC的作用和工作方式:也就是让人来为自己服务。
IoC的产生:在程序开发时候,我们需要某个对象,现在就需要主动来创建这样一个对象,但是现实情况中,项目中有很多的对象,你需要在众多的对象中去主动寻找并且获取,但是如果说当我们需要某种工具的时候,自己就生成或者说被别人送来,是不是轻松很多,也不用大费周折去寻找
IoC的实现方式有三种:
1.构造方法注入
public FXNewsProvider(IFXNewsListener newsListner,IFXNewsPersister newsPersister)
{
this.newsListener = newsListner;
this.newPersistener = newsPersister;
}
2.setter方法注入
public class FXNewsProvider
{
private IFXNewsListener newsListener;
private IFXNewsPersister newPersistener;
public IFXNewsListener getNewsListener() {
return newsListener;
}
public void setNewsListener(IFXNewsListener newsListener) {
this.newsListener = newsListener;
}
public IFXNewsPersister getNewPersistener() {
return newPersistener;
}
public void setNewPersistener(IFXNewsPersister newPersistener) {
this.newPersistener = newPersistener;
}
}
3.接口注入
不好实现,而且代码也不明了,所以也没有好的代码演示
三种方法的优点和不足:
1.构造方法注入的优点是当对象构造完成之后,就能够处于就绪状态,能够提供使用,而缺点在于如果对象太多,或者某个对象的参数多而复杂的话,构造方法就很繁琐,并且维护也是有较大的困难
2.setter方法注入主要体现在性能方面,因为方法可以自定义命名,描述也就更加人性化了,可以有默认值设置。不足的地方可能就是不能立即使用该对象
3.接口注入的方法的话,平常会用到spring,但是从来没有听说过这种方式,可见其落后性,而且接口会让实现类完成一些不必要的方法,这样就会导致出现方法入侵的危险。