spring
文章平均质量分 76
WZTTMoon
这个作者很懒,什么都没留下…
展开
-
spring-mvc 工作流程
+ HttpMessageConverter:将请求的数据转换为对象,将对象转换为特定格式数据,比如json + HandlerMethodArgumentResolver:从请求、cookie、session等解析出controller方法需要的参数 + HandlerMethodReturnValueHandler:处理controler的返回值,将值转换为特定格式输出,比如html,json等 + WebDataBinder:将请求数据转换为指定类型数据,并验证 + M原创 2023-06-09 14:04:23 · 520 阅读 · 0 评论 -
spring 循环依赖
对象实例化之后,会被ObjectFactory包裹,并放入singletonFactories中。然后在发生循环依赖的时候从earlySingletonObjects获取实例化的bean,如果不存在则singletonFactories获取ObjectFactory,并调用ObjectFactory.ge1. spring 成功构建循环依赖的条件是:必须先构建能实例化的对象,在构建依赖对象。2. spring 构建循环依赖依靠:earlySingletonObjects缓存预先存储实例化还未初始化的对象原创 2023-06-08 10:12:01 · 708 阅读 · 0 评论 -
@ConfigurationProperties 实现流程
+ ConfigurationPropertiesBindingPostProcessor:实现了BeanPostProcessor拦截@ConfigurationProperties标注bean的创建过程,注入值。+ EnableConfigurationPropertiesRegistrar:将ConfigurationPropertiesBindingPostProcessor放入容器;将value属性值(标注@ConfigurationProperties的bean class)放入容器原创 2023-05-15 10:08:26 · 471 阅读 · 0 评论 -
spring-boot 加载配置文件和配置注入流程
流程涉及的几个重要对象StringValueResolver:bean工厂依赖此对象来解析配置值ConfigFileApplicationListener:读取配置文件并放入Context中PropertySourcesPlaceholderConfigurer:实现BeanFactoryPostProcessor接口,从context中获取配置,构建StringValueResolver并放入bean工厂PropertyPlaceholderAutoConfiguration:被标注了@Conf原创 2023-05-11 15:28:26 · 571 阅读 · 0 评论 -
spring-boot 启动流程
1. 加载配置文件2. 加载日志组件3. 创建spring容器,扫描bean并注入容器4. 启动tomcat原创 2023-05-06 16:48:33 · 568 阅读 · 0 评论 -
spring-boot 依赖注入流程
1. 拦截bean的创建 要想拦截bean,就需要处理spring bean生命周期事件,spring通过一些接口来处理事件,实现属性注入,需要 InstantiationAwareBeanPostProcessor接口来完成。 2. 找到注解的字段,并注入值 获取被注解bean,然后从bean容器中中寻找响应类型的bean注入。原创 2023-04-28 10:46:22 · 1171 阅读 · 0 评论 -
spring-boot aop运行原理
1. 获取bean spring是bean的容器,要想拦截(代理)某个bean,要先获取bean,spring定义了bean的生命周期事件,开发者可以拦截这些事件从而获取到所有bean。2. 过滤bean,验证bean是不是需要被代理 aop中切点定义要拦截的bean方法,所以用切点表达式可以验证bean需不需要被拦截3. 将@Before等注解生成拦截方法对象,待后面调用目标方法时调用原创 2023-04-26 17:57:23 · 713 阅读 · 0 评论 -
shiro spring-boot 基本使用
【代码】shiro spring-boot 基本使用。原创 2023-04-23 14:57:53 · 116 阅读 · 0 评论 -
spring-boot 常见注解
proxyBeanMethods |指定由@Bean注解定义的对象是否需要cglib代理,如果不代理,那么在调用@Bean注解标注的方法时返回的不是容器中的bean,只是一个普通的方法调用new 了一个新对象。 proxyMode |bean初始化依赖了还没有生成的某个bean,比如SCOPE_REQUEST在请求期间才会生成的bean,那么可以为这个依赖先生成一个代理对象原创 2023-04-20 14:08:37 · 473 阅读 · 0 评论 -
shiro web 体系结构
可以说,只用过滤器就可以完成web项目的登录和鉴权功能。拦截器可能在非web上更有用处。一般情况的过滤器配置,anno 等就是用的上面相对应的过滤器。原创 2023-03-21 15:52:13 · 52 阅读 · 0 评论 -
spring-boot mybatis 初始化流程
1. 初始化的目的是构建三个对象 SqlSessionFactory:保存了所有配置信息,构建sqlSession SqlSessionTemplate: 用于执行sql MapperScannerConfigurer:实现了BeanDefinitionRegistryPostProcessor接口,可以扫描mapper,注册到容器中原创 2023-03-28 14:37:24 · 215 阅读 · 0 评论 -
spring bean 生命周期
org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor 影响bean的实例化,像aop,依赖注入等在此实现 org.springframework.beans.factory.config.BeanPostProcessor 影响bean的初始化,像事务,shiro过滤器加载等在此实现原创 2023-03-07 15:53:18 · 57 阅读 · 0 评论 -
springfox-swagger详细使用说明
1.spring-boot依赖<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version></dependency><dependency> <groupId>io.springfox&l原创 2020-11-16 11:04:32 · 2145 阅读 · 0 评论 -
spring-boot 查找bean流程
第二个问题,通过在spring.factories文件中org.springframework.boot.autoconfigure.EnableAutoConfiguration属性内容记录bean的路径,来告送spring-boot有哪些bean。AutoConfigurationImportSelector 是实现查找的关键类,负责遍历项目中的jar包,并读取spring.factories中的内容并缓存起来。项目中的bean:只要告送spring-boot从哪个包下开始查找就可以。原创 2023-03-06 16:33:27 · 954 阅读 · 0 评论 -
spring-security 登录授权流程
AccessDecisionManager 通过多个AccessDecisionVoter进行具体的验证;AccessDecisionVoter 返回,1代表通过-1不通过0代表弃权;AccessDecisionManager 有三个实现。1. ConsensusBased :少数服从多数为原则,即如果AccessDecisionVoter 多数返回1则成功。2. AffirmativeBased :只要有一个通过则成功(默认)3. UnanimousBased :只有全通过才成功。原创 2023-03-09 11:46:49 · 45 阅读 · 0 评论 -
spring-web注解
和@ExceptionHandler,@InitBinder,@ModelAttribute配合使用来处理相应的流程; 如果被标注的类实现了ResponseBodyAdvice接口,则可以拦截@ResponseBody处理流程,自定义处理返回值如果被标注的类实现了RequestBodyAdvice接口,则可以拦截@RequestBody处理流程,自定义处理请求参数原创 2023-03-08 14:52:11 · 221 阅读 · 0 评论 -
spring-boot 事务实现原理
1. 把需要事务的对象交个spring管理2. 给需要的方法打上标记,即@Transactional 注解3. 把解析标记的程序交给spring。这个程序并不需要我们自己写,spring已经写好了,即TransactionInterceptor对象。默认spring-boot自动实现了这个流程。4. 需要spring-aop。@Transactional 标记的方法作为pointcut,TransactionInterceptor作为advice。默认spring-boot自动实现了这个流程。原创 2023-03-03 16:06:34 · 343 阅读 · 1 评论 -
spring-validate 使用和工作原理
一、基本使用1.maven引入 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.2.RELEASE</version> </dependency>2.contro原创 2020-12-01 14:27:51 · 1512 阅读 · 0 评论