随笔分类 - Spring
摘要:一、application.properties 配置文件 ①:用Spring容器获取Environment变量,然后getProperty获取到配置的value ConfigurableEnvironment environment = context.getEnvironment(); Stri
阅读全文
摘要:MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataA
阅读全文
摘要:一、拦截器 Interceptor 实现HandlerInterceptor接口,并重写以下方法 preHandle(..):在实际处理程序运行之前 postHandle(..): 处理程序运行后 afterCompletion(..): 完成请求后 preHandle方法返回一个布尔值,可以使用此
阅读全文
摘要:Spring-Elasticsearch官方文档:https://docs.spring.io/spring-data/elasticsearch/docs/current/reference/html/#reference Spring Data Elasticsearch 在连接到单个 Elas
阅读全文
摘要:有些Spring项目在启动的时候需要预加载一些资源,有以下方式: 一、启动前执行 1、Java类加载阶段 ①:static变量 在类加载的准备阶段为static变量分配内存并设置类初始值(数据字段类型的默认值) 在类加载的初始化阶段为static变量赋定义的值 ②:static代码块 在类加载的初始
阅读全文
摘要:连接工厂创建连接,并放在连接池中? 一、Spring RedisTemplate的原理 1、不同类型数据结构定义了不同的操作器 private final ValueOperations<K, V> valueOps = new DefaultValueOperations<>(this); pri
阅读全文
摘要:一、AOP AOP,面向切面编程 即拓展功能不通过修改源代码来实现。 采用横向抽取机制,取代了传统的纵向继承体系的重复性代码。在运行期间通过代理方式向目标类中织入增强代码。 实现一个AOP的步骤: 1、将需要增强的目标类和切面类都注入到Spring容器中,标注使Spring知道哪个是切面类,@Asp
阅读全文
摘要:1、安装RabbitMQ 1)MAC:brew install rabbitmq 启动:rabbitmq-server 2、配置可视化RabbitMQ管理界面 1)输入命令rabbitmq-plugins.bat enable rabbitmq_management,这样就可以添加可视化插件了。 2
阅读全文
摘要:本地部署: window配置启动: 1、 添加环境变量 ROCKETMQ_HOME="D:\rocketmq" NAMESRV_ADDR="localhost:9876" 2、启动名称服务器 bin\mqnamesrv.cmd 3、启动Broker bin\mqbroker.cmd -n local
阅读全文
摘要:官方文档:https://redis.io/topics/pipelining Springboot整合文档:https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#pipeline Redis是一种基于客
阅读全文
摘要:发布/订阅 Pub/Sub 发布订阅 的特点是订阅者(listener)负责订阅频道(channel),发送者(publisher)负责向频道发送二进制字符串消息(binary string message)。每当有消息被发送至给定频道时,频道的所有订阅者都会收到消息。(订阅者可以订阅多个频道,发送
阅读全文
摘要:官方介绍:https://redis.io/topics/streams-intro Springboot整合文档:https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis.streams 一、S
阅读全文
摘要:模拟Spring自实现监听器 注意:在toC的项目中禁止使用延时发布事件(事件发布后延时执行),采用sleep方式,会造成线程池任务堆积,从而执行拒绝策略,同时等待队列中任务排队等待时间过长,造成任务执行的积压 组件: 事件(Event):即监听什么。如任务即将执行、任务执行完毕 监听器(Liste
阅读全文
摘要:SPI(Service Provider Interface) 服务提供发现接口。 不同于微服务中的服务发现,其本质是典型的面向接口编程,使用了策略模式,实现解耦。 同时SPI 使用的是一种 ”插件思维“,即服务提供者负责服务所有的维护,当替换服务提供方时不需要调用方修改代码及配置文件。 理解: 1
阅读全文
摘要:监听器模式:监听事件的触发,然后做出相应的操作。(事件驱动模式、事件驱动架构) 当系统运行某些关键节点的时候,会通过广播器去发布一些事件,而系统中存在着一些监听器。对某些事件感兴趣,去订阅这些事件。当这些事件被发布出去之后,监听器监听到这些事件,会触发一些行为。 一、Spring中的监听器实现 组件
阅读全文
摘要:提供给第三方的业务接口应该如何设计呢?需要从哪些方面考虑?以及如何实现这些方面? 1、标准化 RESTful 2、安全性 1)请求token(防止接口被第三方调用) token作为调用系统的凭证。token可以设置一次有效(安全性最高,完全防止接口被第三方调用),不过推荐设置时效性,减少获取获取to
阅读全文
摘要:1、Spring MVC和REST注解 @CookieValue 此注解用在@RequestMapping声明的方法的参数上,可以把HTTP cookie中相应名称的cookie绑定上去。 @ReuestMapping("/cookieValue") public void getCookieVal
阅读全文
摘要:一、声明式事务 @Transactional 在事务代理上调用方法的执行路径示意图: @Transactional注解配置 默认配置: 1、传播行为 PROPAGATION_REQUIRED 2、隔离级别 ISOLATION_DEFAULT 3、事务是读写的 read-write 4、事务超时默认为
阅读全文
摘要:执行流程: 源码分析 1、SpringBoot容器启动类,xxxApplication springApplication.run(args); 2、SpringApplication#run /** * Run the Spring application, creating and refres
阅读全文