
Spring
装兔子的猫
这个作者很懒,什么都没留下…
展开
-
能画一张图说Spring Web MVC的核心架构吗?
核心:Servlet (1)服务启动时,将Dispatcherservlet注入到Tomcat中(DispatcherServlet:分发器,又叫前端控制器) (2)Tomcat的工作线程收到http请求后,将请求转发给SpringMVC的DispatcherServlet (3)查找对应Controller:DispatcherServlet查找@Controller注解的Controller,通过@RequestMapping注解来查找对应URL的Controller (4)查找当前Contro原创 2020-12-14 22:52:51 · 189 阅读 · 0 评论 -
能说说Spring中都使用了哪些设计模式吗?
常用设计模式:工厂模式、单例模式、代理模式 spring ioc核心的设计模式的思想,就是工厂模式。 spring本身就是一个工厂,把所有的bean实例都给放在了spring容器里(大工厂),如果你要使用bean,就找spring容器就可以了,你自己不用创建对象了 1.工厂模式 将对象的创建过程放在一个Factory工厂类里,如果要使用的话,则通过该工厂类来直接获取 public class MyController{ private MyService myService = MySe原创 2020-12-14 22:51:12 · 241 阅读 · 0 评论 -
能画一张图说说Spring的核心架构吗?(Spring生命周期)
创建bean对象实例(反射技术),还包括对应bean之间的依赖关系(依赖注入) 创建动态代理(动态代理技术JDK、cglib) spring生命周期 (1)实例化Bean 向容器请求一个未初始化的bean时,或是初始化bean的时候需要注入另外一个尚未初始化的依赖时,容器会调用creatBean进行实例化 对于ApplicationContext容器,当容器启动结束后,会通过获取BeanDefinition对象中的信息,实例化所有的bean (2)设置对象属性(依赖注入) 看看这个Bean依赖原创 2020-12-14 22:49:58 · 227 阅读 · 1 评论 -
Spring的事务实现原理是什么?能聊聊你对事务传播机制的理解吗?
事务的实现原理 加一个@Transactional注解,此时spring会使用AOP思想,对你的这个方法在执行之前,先去开启事务,执行完毕之后,根据你方法是否报错,来决定回滚还是提交事务 事务传播机制 一个加了@Transactional注解的方法,调用另外一个加了@Transactional注解的方法,这个事务是如何传播的? (1)Propagation.REQUIRED(默认值,不加的时候也默认为Required)常用 如果调用我这个方法的时候,没有事务,则创建一个新的事务。如果已经有事务了,原创 2020-12-12 11:16:43 · 572 阅读 · 0 评论 -
能说说Spring中的Bean是线程安全的吗?
答案:绝不可能是线程安全的,不是线程安全的,也不绝对是线程不安全的 Spring容器中的bean可以分为5个范围 singleton:默认,每个容器中只有一个bean的实例 prototype:为每一个bean请求提供一个实例 以下三种99.99%不用 request:为每一个网络请求创建一个实例,在请求完成后,bean会失效并被垃圾回收器回收 session:确保每个session中有一个bean的实例,在session过期后,bean会随之消失 gloal-session Tomcat中可能原创 2020-12-12 11:13:47 · 1495 阅读 · 0 评论 -
了解过cglib动态代理吗?他跟jdk动态代理的区别是什么?
动态代理常用的技术 cglib(基于子类) jdk动态代理(基于接口) 动态的创建一个代理类出来,创建这个代理类的实例对象,在这个里面引用你真正自己写的类,所有的方法的调用,都是先走代理类的对象,他负责做一些代码上的增强,再去调用你写的那个类 spring里使用aop,比如说你对一批类和他们的方法做了一个切面,定义好了要在这些类的方法里增强的代码,spring必然要对那些类生成动态代理,在动态代理中去执行你定义的一些增强代码 如果你的类是实现了某个接口的,spring aop会使用jdk动态代理,.原创 2020-12-12 11:08:14 · 256 阅读 · 1 评论 -
说说你对Spring的AOP机制的理解可以吗?
AOP是面向切面编程( Aspect) 简单的说就是把我们重复的代码抽取出来,在需要执行的时候,使用动态代理技术,在不修改源码的基础上,对我们已有的方法进行增强 AOP的作用和优势 作用:在程序运行期间,不修改源码对已有方法进行增强。 优势:减少重复代码,提高开发效率,维护方便 AOP的实现方式:使用动态代理技术 事务 MySQL、数据库里都提供一个事务机制,我们如果开启一个事务,在这个事务里执行多条增删改的sql语句,这个过程中,如果任何一个sql语句失败了,会导致这个事务的回滚,把其.原创 2020-12-12 11:05:15 · 297 阅读 · 1 评论 -
说说你对Spring的IOC机制的理解可以吗?
如果没有springIOC的情况下,写一套系统:Tomcat+Servlet 其中调用impl的时候,通过new来创建对象(程序主动创建依赖) 每次都需要new一个,导致耦合度太高,如果后期变动、更换impl的时候,需要改动大量代码并且重新测试 IOC控制反转、依赖注入: 通过xml配置、自动注入的方式进行依赖注入(marven引入一些spring框架的依赖) 这时,当Tomcat启动时,会启动一个Spring容器,添加注解的类会交由Spring进行创建实例对象,包括对象与对象之间的引...原创 2020-12-12 11:02:58 · 301 阅读 · 0 评论