
框架
文章平均质量分 78
顽石九变
人生没有彩排,每一天都是现场直播,所以每一刻都要活得精彩。
展开
-
SLF4J日志框架在项目中使用
SLF4J全称“Simple Logging Facade for Java”,作为各种日志框架的简单门面。例如: java.util.logging、logback 、 reload4j等。只需要切换日志框架的jar包依赖就可以切换日志框架。原创 2023-03-10 15:15:21 · 3368 阅读 · 0 评论 -
RocketMQ4.9.4在SpringBoot项目中使用
通过rocketmq-spring-boot-starter简单使用rocketmq,完整代码示例原创 2023-02-23 17:25:19 · 1258 阅读 · 0 评论 -
统一附件存储MINIO部署使用
基于docker环境部署部署MINIO服务,配合nginx搭建多节点多副本服务;通过JavaSdk在java工程中使用示例。原创 2023-02-08 18:35:15 · 617 阅读 · 0 评论 -
Spring ApplicationEvent事件实现本地事件驱动
Spring内置了简便的事件机制,可以非常方便的实现事件驱动,核心类包括* ApplicationEvent,具体事件内容,事件抽象基类,可继承该类自定义具体事件* ApplicationEventPublisher,事件发布器,可以发布ApplicationEvent,也可以发布普通的Object对象* ApplicationListener,事件监听器,可以使用注解`@EventListener`* TransactionalEventListener,事务事件监听,可监听事务原创 2023-02-02 16:43:05 · 304 阅读 · 0 评论 -
使用MapStruct简化entity、dto、dxo之间的属性复制
MapStruct是一个Java注释处理器,用于生成类型安全的bean映射类。您所要做的就是定义一个映射器接口,该接口声明任何所需的映射方法。在编译期间,MapStruct将生成此接口的实现。此实现使用纯Java方法调用来映射源对象和目标对象,即无反射或类似内容。与手工编写映射代码相比,MapStruct通过生成繁琐且容易出错的代码来节省时间。MapStruct遵循一种约定而非配置的方法,它使用合理的默认值,但允许配置或实现特殊行为。与动态映射框架相比,MapStruct具有以下优势:原创 2022-12-02 19:08:37 · 1145 阅读 · 0 评论 -
SpringBoot工程启动顺序以及自定义监听
SpringBoot在2.4版本以后默认不加载bootstrap.yml配置项。如果需要加载该配置项,需要引入依赖,通常Spring Cloud工程配合nacos这种配置中心或注册中心使用时,需要引入该依赖。SpringBoot单体工程无需引入该依赖,所有配置放在application.yml中即可。原创 2022-11-09 10:59:46 · 605 阅读 · 0 评论 -
Shiro去掉登录时url里的JSESSIONID,允许分号 中文参数
Shiro升级1.8之后默认不允许中文参数,以及分号(;)参数,导致系统首次打开时,因带有;JSESSIONID=参数,系统出现400错误页面。原创 2022-07-29 19:17:30 · 1242 阅读 · 0 评论 -
spring security+cas 单点登录示例(单点退出)
版本说明6.0及以上需要jdk11,如果你是jdk8,最高只能用5.3版本5.3以下版本的是maven工程,6.0以上改成gradle工程了这里基于5.3版本搭建原理服务端搭建下载源码https://github.com/apereo/cas-overlay-template/tree/5.3下载官方的cas-overlay-template,在此基础上修改打包,运行。cas-overlay-template已经集成了springboot,可直接运行。build之后会在target目录生原创 2022-04-21 14:39:13 · 3151 阅读 · 0 评论 -
分布式任务调度平台xxl-job
说明XXL-JOB是一个分布式任务调度平台部署调度中心1、下载源码包从这里下载最新的源码包(https://github.com/xuxueli/xxl-job/releases)初始化数据库/xxl-job/doc/db/tables_xxl_job.sql调度中心支持集群部署,集群情况下各节点务必连接同一个mysql实例2、配置并启动调度中心使用开发工具(eclipse、idea)导入源码,并启动工程(xxl-job-admin)调度中心配置内容### 调度中心JDB原创 2020-09-30 22:04:12 · 563 阅读 · 0 评论 -
redis实现发布订阅功能
Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。是一个简单的消息队列以下结合SpringBoot实际使用1、创建消息监听程序/** * Redis消息监听程序 * */public class RedisMessageListener implements MessageListener { private final Logger logger = LoggerFactory.getLogger(RedisMessageLis原创 2020-06-28 19:04:10 · 505 阅读 · 0 评论 -
Caffeine缓存框架使用
介绍Caffeine是基于jdk 1.8 Version的高性能缓存库。Caffeine提供的内存缓存使用参考Google guava的API。Caffeine是基于Google Guava Cache设计经验上改进的成果。Caffeine是使用jdk 1.8对Guava cache的重写版本,基于LRU算法实现,支持多种缓存过期策略。在创建cache时,有许多参数可以定义initial...原创 2020-03-04 14:04:55 · 3692 阅读 · 0 评论 -
使用Guava检验参数
多数情况下,服务端校验参数是否符合规范,可能会这么做:public VipUserDetail save(VipUserDetail vo) throws ApplicationException { if (StringUtils.isBlank(vo.getVipCard())) { throw new InvalidParamException("vipCard"); } if ...原创 2020-01-06 19:34:30 · 1103 阅读 · 0 评论 -
SpringBoot结合sharding-jdbc实现分库分表
说明定位为轻量级Java框架,在Java的JDBC层提供的额外服务。 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容JDBC和各种ORM框架。适用于任何基于Java的ORM框架,如:JPA, Hibernate, Mybatis, Spring JDBC Template或直接使用JDBC。基于任何第三方的数据库连接池,如:DBC...原创 2019-12-04 14:02:11 · 1136 阅读 · 2 评论 -
SpringCloud Gateway使用简介
API网关gateway的作用类似于zuul,接口网关路由服务。对后台微服务接口进行统一暴露。还能做到“校验,限流、熔断”等作用springCloud Gateway底层采用netty通讯,支持更高并发特性:基于Spring Framework 5、Project Reactor和Spring Boot 2.0构建能够在任意请求属性上匹配路由predicates(谓词) 和 fil...原创 2019-12-04 09:26:22 · 648 阅读 · 0 评论 -
使用Guava作为本地缓存让系统飞起来
简介guava是google的一个开源java框架,其github地址是 https://github.com/google/guava。guava工程包含了若干被Google的Java项目广泛依赖的核心库,例如:集合 [collections]缓存 [caching]原生类型支持 [primitives support]并发库 [concurrency libraries]通用注解...原创 2019-12-03 09:29:28 · 335 阅读 · 0 评论 -
spring cache缓存框架使用
说明spring cache是spring框架的缓存抽象,集成了各种主流缓存实现(ConcurrentMap、redis、ehcache、Caffeine等)spring默认使用ConcurrentMap作为缓存;如果工程中引入了redis配置,则会使用redis作为缓存spring通过CacheManager判断具体使用哪个缓存,每个缓存都有一个具体的CacheManager(比如:EhC...原创 2019-11-07 09:10:59 · 1775 阅读 · 0 评论 -
spring cloud 服务发现时效配置(服务发现慢优化)
相信很多人都会感觉到,springcloud服务发现很慢,特别是使用feign client作为通讯工具的时候,明明服务已经启动了,还要等30-90s左右才能被正常调用到。这个等待有点长!这件事情也困扰了我很长时间,断断续续在网上搜索了不少资料,也没能改到令自己满意。索性狠下心来花时间调试源码,彻底搞明白为什么!经过一天时间的研究,总算有所收获,特地写下来,以备将来需要!环境说明sp...原创 2019-11-03 19:05:03 · 4267 阅读 · 1 评论 -
fastdfs结合springBoot使用
需要先安装好fastdfs服务集成java客户端1、下载客户端源码git clone https://github.com/happyfish100/fastdfs-client-java.git打开工程,自己在本地打包 mvn:install2、在pom中增加客户端依赖<dependency> <groupId>org.csource</gro...原创 2019-10-08 12:55:22 · 230 阅读 · 0 评论 -
SpringBoot集成Swagger
文章目录SpringBoot集成Swagger引入jar包编写配置类文档注解示例常用注解说明启动并访问参考资料SpringBoot集成Swagger引入jar包&lt;dependency&gt; &lt;groupId&gt;io.springfox&lt;/groupId&gt; &lt;artifactId&gt;springfox-swagger2&am原创 2018-11-09 19:47:10 · 293 阅读 · 0 评论 -
SpringBoot SpringCloud学习
文章目录SpringBoot SpringCloud学习1. 创建基本maven工程,修改pom.xml,完整内容如下2. 新建Application.java类,添加注解配置3. 添加main方法4. 使用RestTemplate调用远程服务5. 配置数据源6. 集成zookeeper7. 集成eureka服务eurekaServer配置eurekaClient配置8. 其他配置9. 单元测试1...原创 2018-11-15 16:16:26 · 473 阅读 · 0 评论 -
使用zookeeper作为服务注册中心
zookeeper作为服务注册中心下载安装zookeeper官网下载最新版,修改conf/zoo.cfg配置文件,如果是windows系统必须指定dataDir具体路径运行bin/zkServer.cmd启动zookeeper服务注意,zookeeper版本必须高于工程依赖的zookeeper客户端版本工程配置pom文件添加依赖&lt;dependency&gt; &...原创 2018-11-15 16:35:52 · 551 阅读 · 0 评论 -
高可用架构设计思路
什么是高可用高可用HA(High Availability)是分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。如何保障高可用减少单点,服务器集群化服务分层,并且每层都是集群,当集群中一个节点发生故障时,要自动将请求转移到可用节点上,此转移过程要对调用方透明常见的服务分层思路客户端层:典型调用方是浏览器browser或者手机应用APP反向代理...转载 2018-11-14 10:23:35 · 1107 阅读 · 0 评论 -
JWTs结合SpringCloud使用代码示例
文章目录什么是JWT在什么时候使用JWTsJWTs结合SpringCloud使用首先,需要创建一个独立的gate服务后台服务工程添加过滤器总结什么是JWTJSON Web Token (JWT)是一种基于 token 的认证方案。简单的说,JWT就是一种Token的编码算法,服务器端负责根据一个密码和算法生成Token,然后发给客户端,客户端只负责后面每次请求都在HTTP heade...原创 2018-11-18 11:17:49 · 6597 阅读 · 4 评论 -
JWTs使用简介
JWTs使用简介什么是JWTJSON Web Token (JWT)是一种基于 token 的认证方案。 简单的说,JWT就是一种Token的编码算法,服务器端负责根据一个密码和算法生成Token,然后发给客户端,客户端只负责后面每次请求都在HTTP header里面带上这个Token,服务器负责验证这个Token是不是合法的,有没有过期等,并可以解析出subject和claim里面的数...原创 2018-03-28 12:58:00 · 33092 阅读 · 5 评论 -
SpringBoot集成hystrix
文章目录hystrix有什么用在SpringBoot项目中集成更多配置示例配置线程池配置信号量配合feignClient使用基本配置可视化组件视图hystrix-dashboard汇总监控turbine参考hystrix有什么用资源隔离:包括线程池隔离和信号量隔离,限制调用分布式服务的资源使用,某一个调用的服务出现问题不会影响其他服务调用。降级机制:超时降级、资源不足时(线程或信号量)降级...原创 2018-12-25 10:19:33 · 13250 阅读 · 0 评论 -
MyBatis-Plus使用
文章目录说明特性添加jar依赖安装lombok代码生成器添加依赖模板代码生成类CodeGenerator.java基类实体集成SpringBoot添加依赖添加配置扩展插件分页插件性能分析插件属性自动填充使用示例查询示例保存示例参考说明MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。特性无侵入...原创 2019-01-12 20:57:05 · 220 阅读 · 0 评论 -
SpringBootAdmin使用
文章目录简介常见功能SpringBootAdmin直连配置创建SpringBootAdminServer工程创建SpringBootAdminClient工程启动工程SpringBootAdmin结合Eureka使用创建eurekaServer工程创建adminServer工程创建adminClient工程启动工程集成spring security集成邮箱报警功能参考简介Spring Boot...原创 2019-01-09 20:49:07 · 2760 阅读 · 1 评论 -
SpringBoot集成spring kafka
说明spring kafka极大简化了kafka的使用,结合SpringBoot只需增加少量配置即可轻松使用kafka-clients版本和kafka的版本必须匹配,在引入依然前,需先对照一下版本匹配表Spring kafkaKafka Versionkafka-clients2.3.x3.2.x2.1.02.2.x3.1.x2.0.0, 2.1.0...原创 2019-03-15 22:06:26 · 1241 阅读 · 0 评论 -
Redis key过期监听
说明redis key过期监听实际上是监听的(__keyevent@*__:expired)这个topic。在使用redis key 过期通知一定要 开启key过期通知功能。开启过期通知功能编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知):notify-keyspace-events Ex或者登陆redis-cli之后,输入以下命令:con...原创 2019-05-06 13:48:49 · 6431 阅读 · 1 评论 -
Spring Session 使用
说明在集群环境中,需要共享用户的session,保证用户在一个节点登录后,跳转到另外的节点也是处于登录状态。spring session默认将用户的session存储在redis中引入依赖<dependency> <groupId>org.springframework.session</groupId> <artifactId>spri...原创 2019-05-06 13:49:59 · 329 阅读 · 0 评论 -
elasticsearch在java中使用
本文基于SpringBoot 2.1.1.RELEASE版本配置,搭建的elasticsearch 6.4.3版本(7.1版本和当前的springData版本不兼容),依赖spring-data-elasticsearh 3.1.3.RELEASE版本添加依赖添加maven依赖<dependency> <groupId>org.springframework...原创 2019-06-11 19:08:15 · 1498 阅读 · 0 评论 -
使用nacos作为服务注册中心和配置中心
一、下载安装说明Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。安装从官网下载最新版本的服务端解压后进入bin目录启动即可#L...原创 2019-08-07 17:21:16 · 851 阅读 · 0 评论 -
升级springBoot2.0注意事项
升级springBoot2.0注意事项配置修改server.servlet.context-path:/baseureka server&lt;dependency&gt; &lt;groupId&gt;org.springframework.cloud&lt;/groupId&gt; &lt;artifactId&gt;spring-cloud-sta原创 2018-11-06 18:41:43 · 491 阅读 · 0 评论