springboot
文章平均质量分 54
微服务相关知识
yzq-3841
光荣在于平淡,艰巨在于漫长
展开
-
springboot集成分布式锁redissonLock
引入依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.68</version> </dependency> <dependency> <groupId>org.slf4j</groupId原创 2021-10-08 11:09:06 · 482 阅读 · 0 评论 -
消息中间件rabbitmq
消息中间件Linux下安装rabbitmqDocker安装rabbitmqRabbitMQ角色分类AMQP协议rabbitmq组成部分使用场景单体架构:一个请求由一个服务所提供分布式架构:一个请求由服务器上的多个服务协同完成消息中间件:通过提供消息传递和排队机制,在分布式系统下进行进程间的通讯消息的生产、发送、存储、消费消息队列协议:http协议报文头复杂包含cookie、数据的加解密、状态码等,消息中间件只是负责数据的传递存储和分发,还有就是http大部分是短链接,不具备持久化功能。基于转载 2021-06-08 21:57:06 · 108 阅读 · 0 评论 -
rabbitmq springboot集成
rabbitmq springboot集成直连型交换机扇形交换机配置类主题型交换机配置类消息的确认机制本次实例教程需要创建2个springboot项目,一个 rabbitmq-provider (生产者),一个rabbitmq-consumer(消费者)。定义生产者的微服务: <dependencies> <dependency> <groupId>org.springframework.boot</groupId转载 2021-05-07 21:10:43 · 105 阅读 · 0 评论 -
基于注解实现的菜单权限功能demo
基于注解实现的菜单权限功能定义菜单注解类定义拦截器定义菜单注解类import org.springframework.boot.autoconfigure.EnableAutoConfiguration;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.Configuration;import java.lang.annotation.原创 2021-05-07 20:41:18 · 122 阅读 · 0 评论 -
基于springboot的论坛系统
基于springboot的论坛系统基本的接口有:发帖、查看贴子【帖子的评论数】、发表评论、根据帖子ID查询评论信息、查询置顶的帖子、查询最新的帖子、查询热门帖子、查询我的帖子、查询我评论的帖子、根据帖子ID删除帖子、根据评论ID删除评论、查询所有对我帖子的评论、查询所有对我帖子的评论数、查询对我评论的回复、 查询对我评论的回复数创建三张表:帖子表:post 评论表:comment 贴子的热度表:post_hot评论表:post表:帖子热度表: @ApiOperation("根据帖原创 2021-04-28 20:43:36 · 2645 阅读 · 2 评论 -
基于springboot的打卡签到
基于springboot的打卡签到统计连续打卡天数返回指定日期是早上、下午、晚上、凌晨的哪个时间段统计本周的打卡记录mapper.xml统计连续打卡天数 /** * 统计出最大连续打卡天数 * @param signInDates * @return */ private static int persistentDay(List<Date> signInDates) { if (signInDates.size() == 0){原创 2021-04-24 10:17:49 · 1390 阅读 · 0 评论 -
部署前后端分离项目
部署前后端分离项目参考此篇笔记:https://mp.weixin.qq.com/s/FqfGbYRvhiTU7q0aB1d2EAdocker下登录redis,并修改密码:参考此片博文:https://blog.csdn.net/weixin_42304232/article/details/111179410?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%原创 2021-04-05 22:06:38 · 100 阅读 · 0 评论 -
linux部署JavaWeb项目
linux部署JavaWeb项目下载linux版tomcat解压缩下载linux版tomcat解压缩参考此篇博客:https://blog.csdn.net/wohiusdashi/article/details/81147059最后需要/conf/server.xml配置文件里添加上war包的信息。path为项目的访问路径,docBase为war包的名称,一个tomcat启动多个项目的话,将war都放在webapps目录下,然后配置多个<Context ,即可如下所示。idea打war原创 2021-04-05 10:19:09 · 83 阅读 · 0 评论 -
购买阿里云服务器,从0开始部署项目
购买阿里云服务器,从0开始部署项目购买服务器使用xshell连接服务器安装jdk1.8安装maven Maven >= 3.0配置git安装docker以及mysql项目部署购买服务器服务器购买地址:阿里云云翼计划找到实例:更多->密码->重置实例密码找到安全组,添加端口通过阿里云服务器的防火墙使用xshell连接服务器开始配置环境新建目录:#tmp存放临时安装包mkdir -p /home/tmp#service存放软件环境mkdir -p /home/ser转载 2021-04-03 19:57:48 · 145 阅读 · 0 评论 -
基于springboot定义一个阻塞队列
基于springboot定义一个阻塞队列定义阻塞队列初始化阻塞队列里的属性定义阻塞队列import com.alibaba.fastjson.JSONObject;import com.example.config.util.ThreadPoolUtils;import com.example.wechat.models.entity.WxUser;import com.example.wechat.service.WeChatService;import com.example.wechat.原创 2021-04-01 20:21:20 · 1432 阅读 · 0 评论 -
基于springboot的微信公众号开发
获取微信小程序access_tokenimport org.springframework.web.client.RestTemplate; String ACCESS_TOKEN = "access_token"; String ACCESS_TOKEN_URL = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s"; @Cacheable(原创 2021-03-28 16:22:38 · 215 阅读 · 0 评论 -
秒杀超卖问题
秒杀超卖问题service层启用定时任务service层@Service@Slf4jpublic class OrderServiceImpl extends ServiceImpl<OrderMapper, StockOrder> implements OrderService { @Autowired private StockService stockService; @Autowired private RedisUtil redisUtil;原创 2021-03-22 21:10:39 · 121 阅读 · 2 评论 -
@Transactional的使用
@Transactional的使用@Transactional注解内部实现依赖于Spring AOP编程。而AOP在默认情况下,只有来自外部的方法调用才会被AOP代理捕获,也就是,类内部方法调用本类内部的其他方法并不会引起事务行为。1. Tracsactional 注解尽量加载方法上:因为@Transactional直接加在类或者接口上,@Transactional注解会对类或者接口里面所有的public方法都有效(相当于所有的public方法都加上了@Transactional注解,而且注解带的参转载 2021-03-20 15:41:57 · 4357 阅读 · 0 评论 -
nacos配置中心
nacos配置中心导入依赖添加bootstrap.yml文件启动项目导入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.9.RELEASE</version> <relati原创 2021-03-20 10:44:11 · 70 阅读 · 0 评论 -
小程序直播时间校验
小程序直播时间校验@ApiModelProperty(value = "直播计划开始时间 yyyy-MM-dd HH:mm:ss", required = true) @NotNull(message = "直播计划开始时间不能为空") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date liveStreamStartTime; @ApiModelProperty(va原创 2021-03-20 10:27:26 · 201 阅读 · 0 评论 -
基于Sentinel 的Gateway限流
基于Sentinel 的Gateway限流引入依赖配置类引入依赖<dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-spring-cloud-gateway-adapter</artifactId> </dependency>配置类基于Sentinel 的Gateway限流是通过其提供的Filter来完成的,使用时只需注入对应原创 2021-03-09 20:20:31 · 423 阅读 · 0 评论 -
一个接口的多实现处理方式
一个接口的多实现处理方式ReportHandler 接口抽象类继承ReportHandler 接口实现类中间实现类Controller层ReportHandler 接口public interface ReportHandler { boolean equalsName(String reportName); String handler();}抽象类继承ReportHandler 接口public abstract class AbstractReportHandler imp原创 2021-03-09 20:06:05 · 221 阅读 · 0 评论 -
Springboot AOP 自定义注解实现系统日志
Springboot AOP 自定义注解实现系统日志引入依赖创建系统日志表实体类自定义注解枚举定义aop切面测试引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId></dependency>创建系统日志表实体类import com.baomi原创 2021-03-06 21:06:03 · 97 阅读 · 0 评论 -
springboot常用注解详解
springboot常用注解讲解@Configuration和@Component@Validated注解@Configuration和@Component参考文章加载过程:Spring 容器在启动时,会加载默认的一些 PostPRocessor,其中就有 ConfigurationClassPostProcessor,这个后置处理程序专门处理带有 @Configuration 注解的类,这个程序会在 bean 定义加载完成后,在 bean 初始化前进行处理。主要处理的过程就是使用 cglib 动态原创 2021-03-06 11:30:28 · 85 阅读 · 0 评论 -
在springboot yml文件中自定义属性
在yml文件中自定义属性自定义配置类application.yml文件中加入自定义属性测试进阶:在yml文件中自定义多层的属性引入依赖,这个是对@ConfigurationProperties注解支持的包<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifac原创 2021-03-06 10:44:50 · 642 阅读 · 0 评论 -
基于seata实现分布式事务
基于seata实现分布式事务本地事务和分布式事务的区别什么是CAP理论2PCSeata方案Seata实现2PC本地事务和分布式事务的区别本地事务是基于关系型数据库的,该数据库应用于同一个服务器。分布式事务:不同微服务对同一个或者不同数据库的操作,或者同一个微服务对不同数据库的操作。比如注册用户送积分。什么是CAP理论一致性、可用性、分区容忍性2PC事务管理器负责 决策整个分布式事务的提交和回滚,事务参与者负责自己本地事务的提交和回滚Seata方案Seata是一个开源的分布式事务框架原创 2021-03-05 09:59:53 · 212 阅读 · 2 评论 -
Gateway自定义路由断言工厂类
Gateway自定义路由断言工厂类application.yml文件路由断言工厂配置类application.yml文件server: port: 7000spring: zipkin: base-url: http://127.0.0.1:9411/ #zipkin server的请求地址 discoveryClientEnabled: false #让nacos把它当成一个URL,而不要当做服务名 sleuth: sampler: probabil原创 2021-02-26 17:40:42 · 189 阅读 · 0 评论 -
redis缓存雪崩、穿透、击穿概念及解决办法
redis缓存雪崩、穿透、击穿概念及解决办法缓存雪崩缓存穿透缓存击穿缓存雪崩对于系统 A,假设每天高峰期每秒 5000 个请求,本来缓存在高峰期可以扛住每秒 4000 个请求,但是缓存机器意外发生了全盘宕机。缓存挂了,此时 1 秒 5000 个请求全部落数据库,数据库必然扛不住,它会报一下警,然后就挂了。此时,如果没有采用什么特别的方案来处理这个故障,DBA 很着急,重启数据库,但是数据库立马又被新的流量给打死了。缓存雪崩的事前事中事后的解决方案如下。事前:redis 高可用,主从+哨兵,redi原创 2021-02-24 20:37:40 · 182 阅读 · 0 评论 -
Springboot中如何自定义任务定时器
Springboot中如何自定义任务定时器只定义一个任务时多任务时cron 表达式导入依赖:springBoot已经默认集成了定时任务的依赖,只需要引入基本的依赖就可以使用定时任务。 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-parent</artifactId> <ver原创 2021-01-18 16:27:03 · 787 阅读 · 0 评论 -
Springboot配置文件优先级
Springboot配置文件优先级config/application-default.properties> config/application-default.yml > application-default.properties > application-default.yml> config/application.properties > config/application.yml> application.properties >原创 2021-01-05 20:21:00 · 126 阅读 · 0 评论 -
基于springboot的测试用例
基于springboot的测试用例import com.yang.crm.Application;import com.yang.crm.models.entity.NewsRemind;import com.yang.crm.models.vo.NewsRemindVo;import com.yang.crm.service.NewsRemindService;import org.junit.Test;import org.junit.runner.RunWith;import org.s原创 2020-12-16 11:21:12 · 184 阅读 · 0 评论 -
log4j的日志级别
log4j的日志级别Level 描述ALL 各级包括自定义级别DEBUG 指定细粒度信息事件是最有用的应用程序调试ERROR 错误事件可能仍然允许应用程序继续运行FATAL 指定非常严重的错误事件,这可能导致应用程序中止INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息OFF 这是最高等级,为了关闭日志记录TRACE 指定细粒度比DEBUG更低的信息事件WARN 指定具有潜在危害的情况log4j具有5种正常级别(Level)。如果我们想把控制台某个日志输出想把它关掉:比原创 2020-12-04 10:53:23 · 379 阅读 · 1 评论 -
springcloud
springcloud配置文件spring cloud eureka什么是微服务?微服务就是能独立运行的,基于Http RESTful API或者RPC通信,有各自独立的数据存储,可单独部署;配置文件application.propertiesapplication.yml自定义参数:book.name=springBook.password=123通过@Value注解来加载这些自定义的参数@Value(“${book.name}”)@Value("#{book,name}")priv原创 2020-11-17 11:48:43 · 106 阅读 · 0 评论 -
swagger工具类
swagger工具类导入相关的maven依赖:<dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version></dependency><dependency> <groupId>io.sp原创 2020-11-19 20:50:58 · 172 阅读 · 0 评论 -
springboot整合mybatis
springboot整合mybatis创建springboot工程配置文件创建springboot工程导入相关依赖: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <depen原创 2020-11-16 21:27:12 · 59 阅读 · 0 评论 -
详解负载均衡RestTemplate
详解负载均衡RestTemplateGet请求POST请求put 请求delete请求Get请求通过两种方法实现:getForEntity()和getForObject()这两个函数的区别:getForObject()可以直接返回包装好的对象内容而getForEntity()需要调用getBody()函数才能返回响应体对象的内容;1.getForEntity(String url,Class responseType,Object...urlVariables)//Class response原创 2020-10-31 10:29:09 · 317 阅读 · 0 评论 -
基于SpringBoot实现对Excel文件导入导出
基于SpringBoot实现对Excel文件导入数据库1、导入poi坐标2、Controller层接口3、Excel工具类1、导入poi坐标 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>RELEASE</version原创 2020-09-04 22:22:13 · 496 阅读 · 0 评论 -
基于SpringBoot调用百度ocr以及企查查接口实现对营业执照信息的提取并识别真伪
基于SpringBoot调用百度ocr以及企查查接口实现对营业执照信息的提取并识别真伪1、application.yml2、Controller层接口3、相关工具类3.1 DateUtils3.2 Http请求工具类1、application.yml#企查查配置qichacha: key: 60f3fb2adac94455bc49652c6090974d secret: 3C09698691DCF8F45EB71317F1A25CCC2、Controller层接口 @Autowir原创 2020-09-04 22:12:33 · 1062 阅读 · 0 评论 -
基于SpringBoot调用百度ocr实现图片的文字识别功能
基于SpringBoot调用百度ocr实现图片的文字识别功能1、导入坐标2、DTO实体类3、Controller层接口4、相关的工具类4.1 将本地图片进行Base64位编码的工具类4.2 BaiDuOCR的工具类1、导入坐标 <!--百度文字识别接口--> <dependency> <groupId>com.baidu.aip</groupId> <artifactId&g原创 2020-09-04 21:57:14 · 1244 阅读 · 0 评论 -
基于SpringBoot实现多种格式的邮件发送(能实现普通邮件、html邮件、带附件的邮件)
基于SpringBoot实现多种格式的邮件发送1、Pom.xml2、配置文件application.yml2、Controller层3、Service层3.1 Service接口3.2 Service实现类1、Pom.xml添加邮件坐标 <!--邮件发送--> <dependency> <groupId>org.springframework.boot</groupId> &l原创 2020-09-04 21:37:33 · 441 阅读 · 0 评论 -
基于SpringBoot调用阿里云短信接口实现发送短信功能
SpringBoot调用阿里云接口发送短信1、准备工作2、Controller层接口3、SmsUtils(发送短信工具类)4、pom.xml新增短信坐标1、准备工作1.1、流程1.2、开通短信服务1.3、申请认证密钥1.4、申请短信签名1.5、申请短信模板2、Controller层接口 @GetMapping("sendSMS") public void getUser() { //生成验证码 1-9 6 StringBuilder原创 2020-09-04 09:55:19 · 1152 阅读 · 1 评论