我看了一下书是第四版的,有21章,哎!瞬间的没心情看下去了,慢慢来吧,希望能够坚持住!!!
一:spring是什么?
spring就是一个框架嘛,是一个很牛逼的框架嘛,是一个世界程序员都在用的框架嘛,是为了简化java开发,废话!哪一个框架不是。。。。
二:用了spring的好处有哪些?
根据书上面说的大概就是4点咯,
1)轻量级(也就是不需要继承他的类,实现它的接口而进行编程)
2)IOC(控制反转)也可以叫做DI(依赖注入罗)
3)aop(一般来说都是声明式的,也就是面向贴面编程咯)
4)样板代码(减少开发咯)
三:激发pojo的潜能
也就是前面说的第一点,不用去继承他的类或者实现它的接口,当然,注解除外,然后就是说可以通过di来让Java对象来做事情嘛(其实就是实例化,晕菜),当 然 也只可能是实例化,业务代码当然是我们写,不然程序员就该下岗了。。
四:依赖注入
也就是上面第三点说的,通过依赖注入让java对象更具有魔力。。。。
1)我们可以知道,任何一个程序,都是由多个类来组合堆积起来的,当然,你的helloworld除外。。。但是如果要在A类中去引用B类,毫无疑问,那B类就必须要实例化,那这个实例化的过程一般来说是我们来实现的,但是你用了spring就由spring来实现,是不是很方便啦,其实他的di就是做这样的事的,晕菜
总结:di就是做实例化对象的,要想具体指导代码就去看他的(程序清单1.2)
2)还是把代码说下吧,不然后面都没得说了
普通的方式:
public class AA{
private BB bb;
public AA(){
this.bb=new BB();
}
public void b1(){
bb.bb();
}
}
这个就是我们所想到的普通的方式通过构造函数来实例化一个java对象,但是
问题:1)BB对象和AA对象极度的耦合,如果我们AA现在需要另外一种实现的方式,那就没有办法了
2)不好测试,如果没有BB代码,你就没办法测试。。。
我们修改后的代码
public calss AA{
private BB bb;
public AA(BB bb){
this.bb=bb;
}
public void b1(){
bb.bb();
}
}
我们通过在构造函数弄一个形参,这样是不是就可以啦!!。你需要什么实例,我就传什么实例,对不对。。。这就是我们的spring要做的事情,只不过你用了他以后 ,你的实例化构造方法可以不用写,由他的beans.xml帮我们配置就行了,当然,还有注解
优点:1)松耦合,我想传一个什么对象都行,是吧
2)方便单元测试,我测试,只要自己传个对象就行了,对不对!!!
来一句专业点的语句来说明上面的总结:如果一个对象只通过接口来表明依赖关系,那么这个对象可以用不同的具体实现来进行替换!!!
五,AOP也就是面向贴面编程
DI的功能就是实现松的耦合,而AOP就是将一些公同的代码分离出来,然后集中的注入进去,也就是我们的代码开始模块化了,
好处:让我们的代码更加关注于业务的本身,而不用去关注那些系统的服务(也就是那些公共的代码吧,比如:日志呀,事务呀),
不爽小节:感觉书上的案例好麻烦呀,单词都不认识,哎,没办法,谁叫他是老外写的呢!!!