springboot
文章平均质量分 52
CTRA王大大
一枚码农,坚持coding
展开
-
Spring AOP 注解开发
AOP 步骤将业务逻辑组件和切面类都加入到容器中,告诉spring哪个是切面类(@Aspect)在切面类上的每一个通知方法上标注通知注解,告诉Spring何时何地运行(切入点表达式)开启基于注解的aop模式: @EnableAspectJAutoProxy被代理类package com.ctra.aop;public class MathCaculator { public int div(int i ,int j){ System.out.println("执行除原创 2021-07-29 21:11:17 · 144 阅读 · 0 评论 -
springboot 调用python ,使用RestTemplate实现远程调用请求
微服务混合使用 springboot&java1、springboot 控制 python的各个环境版本2、使用 RestTemplate 实现远程调用3、总结1、springboot 控制 python的各个环境版本为了控制各个环境下的python,这里引入 yml的配置的 注入bean@Data@Componentpublic class PythonConfigModel { @Value("${python.address}") private String url原创 2021-02-02 15:50:18 · 592 阅读 · 0 评论 -
使用restTemplate 使用 POST 调用python外部接口
场景:在springboot中调用python提供的接口1、准备内部类(也可以写在model中) @Data class TestVO { public Set<String> nos; public Set<Integer> deliveryDetailIds; }2、使用 RestTemplate 来进行跨环境RPC调用python接口 public List<DeliveryDetailVO> getD原创 2021-01-07 14:53:15 · 363 阅读 · 0 评论 -
springboot微服务实战:初探异步&线程池(四种创建多线程对比)
四种多线程对比(异步) 创建和初始化多线程的几种方式 1、继承Thread 2、实现Runnable接口 3、实现Callable接口 + FutureTask(可以拿到返回结果,可以处理异常) 4、线程池1、方式一:继承 Thread 类public class ThreadTest { public static void main(String[] args) { System原创 2020-11-20 10:29:55 · 1079 阅读 · 0 评论 -
springboot微服务实战:SpringCache 分布式缓存(规避redis解锁的问题)
简介spring 从3.1 开始定义org.springframework.cache.Cacheorg.springframework.cache.CacheManager来统一不同的缓存技术并支持使用JCache(JSR-107)注解简化我们的开发基础概念实战使用整合SpringCache简化缓存开发常用注解常用注解说明@CacheEvict触发将数据从缓存删除的操作 (失效模式)@CachePut不影响方法执行更新缓存@Caching组合原创 2020-11-20 10:28:04 · 935 阅读 · 0 评论 -
springboot微服务: 整合 RabbitMQ、发送、监听
一、springboot项目整合RabbitMQ1、引入POM<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId></dependency>2、改 yaml (properties)spring.rabbitmq.host=192.168.159.13原创 2020-11-20 10:22:19 · 752 阅读 · 3 评论 -
微服务限流及熔断一:四种限流算法(计数器算法、滑动窗口算法、令牌限流算法、漏桶限流算法)
引言本篇内容根据《spring cloud alibaba 微服务原理与实战》中内容摘取,希望和大家分享限流的思想,本篇不涉及代码层面的实现。限流的目的目的:通过限制并发访问数或者限制一个时间窗口内允许处理的请求数量来保护系统作用:损失一部分用户的可用性,为大部分用户提供未定可靠的服务一旦达到限制数量则对当前请求处理采取对应的拒绝策略(这里其实和Java中的executor线程池远离是一样的),比如跳转到错误页面、拒接请求、进入排队系统、降级等。限流的四种算法1、计数器算法计数器算法是原创 2020-11-19 14:04:42 · 1965 阅读 · 2 评论 -
springboot微服务实战:定时任务Job-分布式下的问题 (解决方式:分布式锁Redisson)
1、定时任务请求业务代码1.1 没有锁的情况下如下图:问题场景在没有锁的情况下,同时3个线程(3台微服务)同时进行执行同一个上架商品的业务代码,这时会将同一个商品上架三次导致错误解决方式引入锁机制,将3个请求锁住,只让一个线程进入执行1.2 使用分布式锁 Redisson如图:代码实现@AutowiredRedissonClient redissonClient;private final String upload_lock = "race:upload:lock"原创 2020-11-16 20:42:50 · 765 阅读 · 0 评论 -
springboot微服务实战:定时任务&异步任务 ->实现:非阻塞定时任务(非Quartz定时任务)
1、定时任务定时任务:前提:只使用springframework的工厂(非 quartz)@EnableScheduling 开启定时任务功能@Scheduled 开启一个定时任务2、异步任务异步任务:@EnableAsync 开启异步任务功能@Async 给需要异步执行的方法3、为什么要使用异步任务?A:破坏了定时任务的执行时间顺序如下面代码所示,如果不添加上异步任务,则在执行定时任务时,会因为线程的阻塞,导致后面所有的任务都不会按照正常的corn克隆表达式去执行。原创 2020-11-16 11:35:42 · 642 阅读 · 0 评论 -
mybatis-plus | 分页:自定义sql +使用wapper (2种实现方式)
前言:解读一下这个标题mybatis-plus 自定义sql +使用wapper 分页自定义sql:指的是程序员自己写的sql语句使用wapper 分页:使用mybatis-plus的wrapper的分页功能1.1 第一步:Dao接口创建一个自定义方法代码如下: /** * 自定义sql分页 * @param page * @param queryWrapper 看这里看这里,如果自定义的方法中需要用到wrapper查询条件,需要这样写 * @ret原创 2020-11-16 09:09:50 · 2846 阅读 · 6 评论 -
《renren-fast 人人开源 》如何暴露对API外接口?《人人开源-renrenfast 踩坑记录》
1、修改shiro的配置配置filter的不加权限的限制路由更多问题还可以参考:https://www.renren.io/detail/135832、自定义接口注意:只要访问时不是报错404,就是已经对外开放接口访问的权限了3、{ msg 未知异常,请联系管理员 code :500}前面我已经将需要处理的处理好了外界访问报错500可以参考这个问题:https://www.renren.io/detail/13591这里其实是你的代码报错的问题因为后台全部加上日志了需要自原创 2020-11-10 11:10:09 · 1210 阅读 · 2 评论 -
maven 微服务实战中各种问题汇总 一片搞定(持续更新中。。。)
1、测试类报错1.1)报错内容:Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 6.244 s <<< FAILURE! - in com.ctra.gulimall.gateway.GulimallGatewayApplicationTests contextLoads Time elapsed: 0.002 s <<< ERROR!1.2)图片如下解决方案哪个微服务报错,就原创 2020-11-07 11:17:30 · 368 阅读 · 0 评论 -
springboot微服务实战:分布式锁 Redisson 之八锁(Github-WIKI文档)与JUC下8锁相同原理
1. 可重入锁(Reentrant Lock)基于Redis的Redisson分布式可重入锁RLock Java对象实现了java.util.concurrent.locks.Lock接口。同时还提供了异步(Async)、反射式(Reactive)和RxJava2标准的接口。RLock lock = redisson.getLock("anyLock");// 最常见的使用方法lock.lock();大家都知道,如果负责储存这个分布式锁的Redisson节点宕机以后,而且这个锁正好处于锁住的状原创 2020-10-19 20:47:18 · 309 阅读 · 0 评论 -
RabbitMQ 的 三种类型exchange(交换机):direct、fanout、topic 详解
Docker 安装 RabbitMQdocker run -d rabbitmq -p 5671:5671 -p 5672:5672 -p 4369:4369 -p 25672:25672 -p 15671:15671 -p 15672:15672 rabbitmq:management端口描述4369,25672Erlang发现&集群端口5672,5671AMQP端口15672web管理后台端口61613, 61614STOMP协议端口18原创 2020-10-15 15:27:59 · 925 阅读 · 0 评论 -
springboot微服务实战:Redisson 分布式锁场景:模拟并发、异常中断会不会死锁
Redisson 分布式锁阻塞式等待 ( 续长30s )1) 锁的自动续期,如果业务超长,运行期间自动给锁续上新的30s2) 加锁的业务只要运行完成,就不会给当前锁续期,即使不手动解锁,锁默认在30s以后自动删除@Controllerpublic class IndexController { @Autowired RedissonClient redisson; @ResponseBody @GetMapping("/hello") public S原创 2020-10-05 16:10:30 · 357 阅读 · 3 评论 -
Spring Cloud Alibaba训练营结营考试 2020
原创 2020-09-30 21:50:17 · 188 阅读 · 0 评论 -
springboot微服务-jedis-实战ERROR:OutOfDirectMemoryError 产生环境-堆外内存溢出
Lettuce & JedisredisTemplate (StringRedisTemplate类)Lettuce & Jedis 操作redis的底层客户端,Spring再次封装 redisTemplate无论我们使用哪个服务,最后都可以获得连接工厂堆外内存溢出原因:springboot2.0 以后默认使用 Lettuce 作为操作redis的客户端它使用netty进行网络通信Lettuce 的bug导致netty堆外内存溢出设置JVM:-X原创 2020-09-30 13:05:13 · 666 阅读 · 0 评论 -
小马哥《springboot》IOC 笔记
IoC 的简史• 1983年,Richard E. Sweet 在《The Mesa Programming Environment》中提出“Hollywood Principle”(好莱坞原则)好莱坞原则:不要来打电话给我,我会打电话给你这里的“我”指的是资源,你就是应用系统(模块)• 1988年,Ralph E. Johnson & Brian Foote 在《Designing Reusable Classes》中提出“Inversion of control”(控制反转)• 1原创 2020-09-29 11:20:59 · 196 阅读 · 0 评论 -
springboot微服务实战:操作 es7.4.2
一、导入maven依赖1、从官方API copy pom坐标链接地址:https://www.elastic.co/guide/en/elasticsearch/client/java-rest/7.x/java-rest-high-getting-started-maven.html<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elastics原创 2020-09-29 11:18:40 · 226 阅读 · 0 评论 -
springboot微服务实战:idea 批量服务器编组 设置微服务占用内存大小
原创 2020-09-21 11:15:09 · 842 阅读 · 0 评论 -
springboot微服务实战: 中如何快速逆向生成vo层?
这是我们常用的json格式化工具,殊不知他还能转成vo层的实体类https://www.bejson.com/json2javapojo/new/原创 2020-09-21 09:51:33 · 569 阅读 · 0 评论 -
Elasticsearch 创建索引(数据库),创建类型(表),插入json数据(表数据)
PUT & POSTPUT 操作PUT更适合修改操作POST 操作ES乐观锁-模拟并发这里判断版本的条件:_seq_no 字段来标记老版本的使用的是:_version 字段来标记A请求B请求流程图如下原创 2020-09-19 17:34:22 · 1425 阅读 · 0 评论 -
Elasticsearch :docker 下 7.4.2版本的 Elasticsearch Kibana Nginx下IK分词器 安装
前面需要提前安装 docker 这里就不再赘述了下载 elasticsearch & kibana一、dockerdocker pull elasticsearch:7.4.2docker pull kibana:7.4.2二、创建2个目录供 docker 中elasticsearch 外部关联mkdir -p /mydata/elasticsearch/configmkdir -p /mydata/elasticsearch/data三、 创建elasticsearch的c.原创 2020-09-19 09:34:43 · 976 阅读 · 0 评论 -
springboot微服务实战:利用vo重新构建pojo
工具类PageUtils/** * Copyright (c) 2016-2019 人人开源 All rights reserved. * * https://www.renren.io * * 版权所有,侵权必究! */package com.ctra.common.utils;import com.baomidou.mybatisplus.core.metadata.IPage;import java.io.Serializable;import java.util.L原创 2020-09-18 18:16:56 · 661 阅读 · 0 评论 -
window10 VMware 通过 宝塔 安装redis 5.0 使用SecureCRT链接使用
前置工作1、安装VMware这里不多描述2、安装Centos7 镜像这里不多描述3、安装宝塔首先这里在安装centos系统时,要确认用户是否为root用户,如果不是在后面访问时会涉及SecureCRT配置问题(在此注意一下细节)如何centos快速创建root用户?退出当前登录账号然后输入账号时 输入root然后密码输入就为新密码安装宝塔十分简单就是一句话打开terminal 然后输入如下的命令:yum install -y wget && wget -O in原创 2020-06-17 09:56:38 · 871 阅读 · 0 评论 -
【Mybatis】MyBatis 全网最通俗易懂的教程(2020年、非常详细)
【Mybatis】MyBatis 全网最通俗易懂的教程(2020年、非常详细)原创 2020-05-28 16:42:12 · 8000 阅读 · 4 评论 -
Java 高级 annotation 注解、内置注解、元注解、自定义注解 (含源码 2020年最新)
注解 Annotation1、什么是注解?Annotation 是从 JDK5.0 开始引入的新技术Annotation的作用:不是程序本身,可以对程序作出解释(这一点和注解 comment 没什么区别)可以被其他程序(比如:编译器等 )读取Annotation的格式:注解是以“@注释名”在代码中存在的,还可以添加一些参数值,例如-抑制警告:@SuppressWarnings(value=“unchecked”)Annotation 在哪里使用?可以附加在package、c原创 2020-05-12 11:37:20 · 416 阅读 · 0 评论 -
【Mybatis】 2022自学SpringBoot:Mybatis 使用 Map 为 parameterType参数(按需传值,告别全部传参)
为什么使用map作为参数?当表中的字段很多的时候,在 mapper的XML 中配置的字段会很多,为空的字段可以不传,就要使用map参数代码如下 // 万能map Integer addUser2(Map<String,Object> map);如果要使用 int为返回值,则报错...原创 2020-05-09 14:13:03 · 1473 阅读 · 0 评论 -
spring-boot 从0开始 第一章:helloworld与原理初探
//@SpringBootApplication 标注这个类是一个springboot 应用@SpringBootApplicationpublic class Springboot01HelloworldApplication { public static void main(String[] args) { // 将 springboot 应用启动 ...原创 2020-05-08 14:06:33 · 367 阅读 · 0 评论 -
IDEA使用技巧: 关于 springboot 全局搜索 (IDEA 2019.3环境)
ctrl + N 调出搜索框选择 All 进行全局(该项目全文件)搜索搜索后可以快速定位,并进入改文件的内部原创 2020-05-08 13:59:09 · 789 阅读 · 0 评论 -
IDEA使用技巧: SpringBoot 中properties 文件乱码问题 (IDEA 2019.3环境)
file-settings搜索: file encodings (左上角位置)如下默认设置 将 GBK 全部改成 UTF-8原创 2020-05-07 15:24:21 · 165 阅读 · 0 评论 -
SpringBoot:快速入门 swagger2.x (含swagger注解说明、springboot多环境、dockerfile、nginx)
> swagger 实现效果 地址:[http://swagger.stonestill.cn/swagger-ui.html](http://swagger.stonestill.cn/swagger-ui.html)> 使用 java 的 通过 swagger 发布jar包> 使用 dockerfile 在服务器执行镜像文件> 使用 nginx 正向代理 进行DNS解析> github 地址: [https://github.com/Holyson/java-swagger](https://原创 2020-04-29 16:47:17 · 740 阅读 · 0 评论