随笔分类 -  Spring

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