springboot
说springboot前先说spring。spring中最核心的是IOC与AOP。
IOC(控制反转)
在了解控制反转前先了解什么是正转,
假如有一个人卖鸡蛋,如果他拿着鸡蛋去市场卖掉(无论卖给客户还是卖给中间商),那么他需要拿着鸡蛋去市场,主动卖掉。而反转,则是卖鸡蛋的人将鸡蛋放在门口,等着买鸡蛋的人来收鸡蛋。这样,卖鸡蛋的人就把主动权交由买鸡蛋的人控制。
DI(依赖注入)
在正常的类与类(非父子关系)关联时需要在需要依赖的类中创建被依赖类的对象。而依赖注入的思想是把依赖的关系配置在配置文件中(通过在依赖类的构造器中以传参的形式传到),而在配置文件中会依赖被依赖类的父类,这样传入的对象可以是被依赖类的对象,也可以是被依赖类的子类。这样就会降低依赖类与被依赖类的耦合。
eg:a依赖与b,b是c的子类,d也是c的子类
只需要在a的构造器中传入c的形参,这样就在传实参时即可以传入b也可以传入c
AOP(面向切面)
面向切面编程。可以把整个service(举例)代码从上到下,service从左到右铺下。切面就是沿着单service的中间横向切开。
这么做有什么好处
这样就可以把service中的一个相同功能单独摘出来做,然后放入service中。并且无论有多少个service都只需要一个功能即可使所有的service都具有这个功能。其实这个思想与抽象的思想相同,就是把相同的部分抽离出来单独来做。这样可以一方面可以节省写相同的时间,另一方面可以降低耦合度,使代码更加容易维护。
这个思想在其他很多方面都用到了,如nginx的反向代理,动态代理模式(其实AOP就是用的动态代理)。
先看到这-_-