大三选了软工的java企业级开发,教的就是jsp+servlet+spring。后来用经常用框架,渐渐地忘记了spring这类东西了。发现在企业面试的时候还会用到,所以便赶紧复习一下~
https://blog.csdn.net/daguairen/article/details/64925565?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase - Spring框架基础知识
https://zhuanlan.zhihu.com/p/33492169 - 浅谈控制反转与依赖注入(有趣~),说得挺好的
如果一个类A 的功能实现需要借助于类B,那么就称类B是类A的依赖,如果在类A的内部去实例化类B,那么两者之间会出现较高的耦合,一旦类B出现了问题,类A也需要进行改造,如果这样的情况较多,每个类之间都有很多依赖,那么就会出现牵一发而动全身的情况,程序会极难维护,并且很容易出现问题。要解决这个问题,就要把A类对B类的控制权抽离出来,交给一个第三方去做,把控制权反转给第三方,就称作控制反转(IOC Inversion Of Control)。控制反转是一种思想,是能够解决问题的一种可能的结果,而依赖注入(Dependency Injection)就是其最典型的实现方法。由第三方(我们称作IOC容器)来控制依赖,把他通过构造函数、属性或者工厂模式等方法,注入到类A内,这样就极大程度的对类A和类B进行了解耦。
控制反转是一个思想,依赖注入是实现控制反转的方式~
总结:在代码实现方面,依赖则是一个类继承了另一个类,但当父类不能使用时,就需要拼命改造子类,这样会大大加大代码的维护成本。但依赖注入,相当于把之前的父类注入到子类中,但它们是两个相对独立的类,注入可以随时根据需求更换。这样就做到了低耦合~
https://juejin.im/post/5b06bf2df265da0de2574ee1 - Spring AOP就是这么简单啦
嗯,AOP搞了好几个术语出来~~两本书都有讲解这些术语:(aop用到的就是动态代理)看了一下博客,才发现这个的好处,虽然也有用,但不是很理解概念,现在清晰了~
连接点(Join point):
切点(Poincut):
增强/通知(Advice):
织入(Weaving):
增强/通知
添加到目标类的具体连接点上的过程。引入/引介(Introduction):
引入/引介
允许我们向现有的类添加新方法或属性。是一种特殊的增强!切面(Aspect):
增强/通知
组成,它既包括了横切逻辑的定义、也包括了连接点的定义。简单地说一下aop,面向切面编程:(1)切点:无非就是一个类的方法,而这个方法被其他连接点具体关联,,也就是切入。(2)连接点:就是关联这个切点的其他点(方法)。(3)增强/通知(Advice):注解引入其他连接点 (4)切面=增强/通知(Advice)+切点 (5)织入:切面的过程 (6)引入/引介
允许我们向现有的类添加新方法或属性。是一种特殊的增强。
而其中动态代理的运行周期就是:在运行期间如果要使用某个类或对象,通过动态加载,也即是在运行期间加载。
https://juejin.im/post/5c9f72276fb9a05e122c74f3 - 关于Jpa和Mybatis的一些看法
注:jpa并不是集成在springboot中,而是和springboot可以组合使用,jpa和mybatis的作用是差不多相同的,是一个第三方数据库支持框架,还有hibernate。
https://www.cnblogs.com/baizhanshi/p/8109664.html - Spring、SpringMVC、SpringBoot的区别与联系
https://juejin.im/post/5d91c7326fb9a04e37315b8a - Spring、SpringMVC、SpringBoot、SpringCloud的区别与联系
Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。Spring使你能够编写更干净、更可管理、并且更易于测试的代码。
Spring MVC是Spring的一个模块,一个web框架。通过Dispatcher Servlet, ModelAndView 和 View Resolver,开发web应用变得很容易。主要针对的是网站应用程序或者服务开发——URL路由、Session、模板引擎、静态Web资源等等。
Spring配置复杂,繁琐,所以推出了Spring boot,约定优于配置,简化了spring的配置流程。
Spring Cloud构建于Spring Boot之上,是一个关注全局的服务治理框架。
注:之前上Java企业级开发的时候,听老师说学jsp+servlet+spring是帮助去了解现在各种框架的历史和来源,早期是怎么编程的,以后学框架是决定以后工资高低的技能。但区别于科班程序员和非科班程序员就是这个jsp+servlet+srping基础。当时一直有点不明白,昨天第一次面了java开发的岗位,发现也问道了spring。这才重新捡起这个东西,并开始复习,应对后面的面试~