jsp+servlet+spring复习 + 相关框架知识扩展(面试必问)

本文主要复习了Java企业级开发中的JSP+Servlet+Spring基础,强调了Spring的控制反转(IOC)和依赖注入(DI)思想,以及AOP的原理。同时,提到了JPA、Mybatis等框架,并讨论了Spring、SpringMVC、SpringBoot和SpringCloud的区别与联系。内容包括相关框架的使用场景、优缺点以及在面试中的重要性。
摘要由CSDN通过智能技术生成

大三选了软工的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):

  • 能够被拦截的地方:Spring AOP是基于动态代理的,所以是方法拦截的。每个成员方法都可以称之为连接点~

切点(Poincut):

  • 具体定位的连接点:上面也说了,每个方法都可以称之为连接点,我们具体定位到某一个方法就成为切点

增强/通知(Advice):

  • 表示添加到切点的一段逻辑代码,并定位连接点的方位信息
    • 简单来说就定义了是干什么的,具体是在哪干
    • Spring AOP提供了5种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。这才重新捡起这个东西,并开始复习,应对后面的面试~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值