随笔分类 - springboot
摘要:状态机,包括了状态和动作,某个**状态**下,只能执行某些**动作**,如果**动作**不匹配,状态是不会进行变更了,这样就保护了我们状态字段的准备性,不能随意改变,必须按着我们**设计的规则**进行状态的轮转。 # Stateless实现的状态机 1. **Stateless**:Stateles
阅读全文
摘要:事实是这样的,我有个接口,这个接口不能被篡改,于是想到了比较简单的md5对url地址参数进行加密,把这个密码当成是sign,然后服务端收到请求后,使用相同算法也生成sign,两个sign相同就正常没有被篡改过。 问题的出现 接口中的参数包括userId,extUserId,时间,其中extUserI
阅读全文
摘要:@ConditionalOnProperty注释在类或者bean方法上进行控制这个bean对象是否被注册,它是否被注册,完成依赖于ConditionalOnProperty里的value的值,为true时,表示被注册,为false表示不注册这个bean。而我们通过matchIfMissing来配置这
阅读全文
摘要:1. 前言 WebMvcConfigurer配置类其实是Spring内部的一种配置方式,采用JavaBean的形式来代替传统的xml配置文件形式进行针对框架个性化定制,可以自定义一些Handler,Interceptor,ViewResolver,MessageConverter。基于java-ba
阅读全文
摘要:上一篇说了关于MDC跨线程为null的理解,而本讲主要说一下,如何去解决它,事实上,Hystrix为我们留了这个口,我们只需要继承HystrixConcurrencyStrategy,然后重写wrapCallable方法,再把这个重写的对象注册到Hystrix里就可以了,跨线程共享数据,可以使用阿里
阅读全文
摘要:MDC概念 MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能,也可以说是一种轻量级的日志跟踪工具。 MDC能做什么 那么通过MDC的概念,我们可以知道,MDC是应用内的线程级别,不是分布式的应用
阅读全文
摘要:对于logback的模板来说,我们是可以自定义的,同时它也提供了一些公开的常量,比如%level,%thread这些,我们如果希望自定义这些常量,需要实现ClassicConverter抽象类,重写它的convert方法。 系统变量 %thread 当前线程 %d{yyyy-MM-dd HH:mm:
阅读全文
摘要:BeanFactory BeanFactory是Spring容器中的一个基本类也是很重要的一个类是Spring容器中的一个基本类也是很重要的一个类,在BeanFactory中可以创建和管理Spring容器中的Bean,它对于Bean的创建有一个统一的流程。 Spring的本质是一个bean工厂(be
阅读全文
摘要:excel读出来的json,它是一个字符串,不是标准json,所以需要对字符串字段进行解析 复杂的excel如图 通过poi解析json,通过jackson完成对字段的解析 public static List<Map<String, Object>> read(String filePath) t
阅读全文
摘要:redis-cluster是一个高可用,可分片的分布式redis集群解决方案,建议使用springboot2.3及以上版本的脚手架,如果是<2.3版本,你需要手动添加LettuceConnectionFactory来实现因为服务器宕机引起的节点感应功能;如果没有添加动态感应,那你的redis-clu
阅读全文
摘要:一个start包,它不需要有springboot启动类,它只提供一切公用的功能,被其它包依赖就行了,通过META-INF/spring.factories或者META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguratio
阅读全文
摘要:RedisTemplate默认使用二进制hex的方式进行持久化,它对象的值存储到redis里,当然,你的对象需要先实现java.io.Serializable接口,这种方式兼容性好,速度快,存储空间小;缺点就是没有可读性,所以就有了json的序列化方式,下面总结一下。 一 JdkSerializat
阅读全文
摘要:对于springboot中基于方法的缓存Caching来说,我们直接以声明的方式添加,删除这些缓存,而它们在redis这种持久化产品中,通过value::key的方法组成一个redis.key,在业务方法中,可以通过这种key来手动获取它们。 注解声明 @CacheEvict(value = Cac
阅读全文
摘要:ApplicationContextAware是一个接口,它提供一个方法setApplicationContext,当spring注册完成之后,会把ApplicationContext对象以参数的方式传递到方法里,在方法里我们可以实现自己的逻辑,去获取自己的bean,当前对接的断言等;一般用在被封装
阅读全文
摘要:数据库说明文档,在我们开发项目时是非常必要的,有时项目交付时,客户也是需要让我们提供的,而如果人工编写,比如耗时,通过screw组件来生成文档,非常方便。 源代码和使用:https://github.com/pig-mesh/screw 添加依赖 <dependency> <groupId>cn.s
阅读全文
摘要:首先,进行springboot2.7之后,官方不推荐使用/META-INF/spring.factories,转成和SPI比较类似的/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件,
阅读全文
摘要:对于es的数据类型来说,如果它是一个复杂类型,而我们需要把复杂类型进行检索,那么应该定义成nested类型,而对于它的检索,如果是非集合数据,它与其它类型没有分别;而如果你的nested存储的数据是一个集合,那在进行不等于这种操作时,就需要说明一下了。 举例子 "id": "1", "operate
阅读全文
摘要:thymeleaf在spring-mvc时代很是盛行,与freemaker组成了两大模版引擎,而进行springboot之后,很多项目都采用前后分离的模式,这使得模板引擎关注度少了;而在一些场景下,使用模板引擎还是有着不可替代的优势的,比如email模板,我们会把html模版文件和后端代码放到一个项
阅读全文
摘要:前后一体的应用,是这样进行认证的 用户向服务端发送验证信息(用户名、密码); 服务端验证成功就向用户返回一个sessionid; 服务端保存了这个session_id对应的信息,并写入用户的 Cookie; 之后的每一次请求,都会通过Cookie,将session_id传回服务端,服务端收到sess
阅读全文
摘要:回到占占推荐博客索引 最近写了不过关于java,spring,微服务的相关文章,今天把它整理一下,方便大家学习与参考。 java~springboot(2022之前)~目录索引 java~springboot(2022之后)~目录索引 springboot~容器化环境获取真实IP地址 springb
阅读全文