当前位置: 首页 > 后端技术 > Java

Spring_0

时间:2023-04-01 17:10:54 Java

SpringBean生命周期分析类获取BeanDefintioin(通过ComponentScan注解过滤的非懒加载bean)。如果有多种构造方法,则必须推断构造方法。构造方法确定后,实例化得到一个对象到对象的属性,添加@Autowire注解,用于属性填充(即完成依赖注入)回调Aware方法,如BeanNameAware、BeanFactoryAware调用之前的方法BeanPostProcess回调初始化方法的初始化(是否实现了InitializingBean接口,如果实现了则执行)调用BeanPostProcess方法,初始化完成后会在这里进行AOP。如果当前创建的bean是单例,则该bean会被放入单例池。当bean关闭时,DisposableBean中的destroy方法会在Spring容器关闭时被调用。Spring中的事物是如何实现Spring事物底层的呢?它基于数据库事务和AOP机制。首先,对于使用@Transactional注解的bean,Spring会创建一个代理对象作为bean。在调用代理对象的方法时,会判断方法中是否添加了@Transactional注解。如果添加了,则则使用事务管理器创建数据库连接,修改数据连接的autocommit属性为false,禁止自动提交该连接。这是实现spring事务然后执行当前方法的非常重要的一步。执行当前方法后,会在方法中执行SQL。如果没有异常,则提交交易。如果出现异常,异常需要回滚,事务就会回滚。否则,交易仍然被提交。spring事务的隔离级别对应数据库的隔离级别。spring事务的传播机制是spirng事务自己实现的,spring事务中最复杂的spring事务传播机制是基于数据库连接的。数据库连接到事务。如果传播机制被配置为需要一个新的事务,那么实际上首先建立了一个数据库连接,再次在数据库连接上执行sqlSpring。使用了哪些设计模式?责任模式BeanPos的模式链tProcessor访问者模式Spring支持的几种bean的范围Spring容器启动过程SpringMVC底层原理用户向前端控制器发送请求DispatcherServletDispatcherServlet接收到请求调用HandlerMapping处理器映射器处理器映射器找到具体的处理器(可以根据在xml配置和注释上),生成处理器和处理器拦截器(如果有则生成)并将其返回给DispatcherServlet。DispatcherServlet调用HandlerAdapter来处理适配器。HandlerAdapter适配调用特定的处理器(Controller,也叫后端控制器)。Controller执行完成并返回ModelAndViewHandlerAdapter返回Controller执行结果ModelAndView给DispatcherServletDispatcherServlet将ModelAndView传给ViewResolverviewresolverViewResolver解析并返回具体的ViewDispatcherServlet根据ViewView进行渲染(即将模型数据填充到view中)DispatcherServlet响应用户的九个SpringMVCResolver组件:解析器HandlerMappingHandlerAdapterHandelExceptionResolverViewResolverRequestToViewNameTranslatorLocalResolverTimerResolverMultipartResolverFlashMapManager