springboot
ddd
量化接口stockapi
专注量化数据接口 https://stockapi.com.cn
展开
-
service事物失效如何获取代理事物
在我们项目中有事物失效的情况在一个没用开启事物的方法中调用另外一个开启了事物的方法,在调用createVoucherOrder方法的时候是通过this去调用的,并不是通过代理对象调用,所以事物失效,此时我们应该是通过代理对象来调用。...原创 2022-07-28 22:38:43 · 222 阅读 · 0 评论 -
SpringBoot Actuator指标监控
未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。添加配置信息在application.yml中添加配置信息启动项目输入地址:http://localhost:8080/actuator/health返回数据如下:即可看到每个组件之间的健康状态,这些都是默认的组件如果我们外加了一些其他组件,就需要自定义组件输入请求http://localhost:808原创 2022-06-05 11:42:37 · 234 阅读 · 0 评论 -
测试环境idea远程断点调试代码
复制参数agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8999端口8999是断点调试的端口,不是服务器上程序的端口,如果防火墙开启了需要对8999这个端口开放一下在测试环境的服务器上重新启动项目执行命令:Linux后台运行jar包命令, 关闭窗口不影响程序执行就执行这个命令启动程序nohup java -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,susp...原创 2021-04-14 22:30:09 · 915 阅读 · 0 评论 -
sentinel在网关处做流控
在网关项目中添加maven依赖<!-- 引入 sentinel跟网管层的整合 --><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId> <version>2.1.0.RELEASE</version></d原创 2021-03-05 00:47:15 · 394 阅读 · 2 评论 -
sentinel在调用方做熔断降级
配置文件application.properties添加如下信息#开启熔断降级feign.sentinel.enabled=true在远程调用方feign调用的接口上添加熔断的类信息//告诉spring cloud 这个接口是一个远程客户端 调用远程服务//feign sentinel 熔断保护 fallback =表示出错了 回调哪个?@FeignClient(value = "gulimall-seckill", fallback = SeckillFeignServiceFallBac原创 2021-03-04 21:14:18 · 410 阅读 · 1 评论 -
sentinel在提供方自定义对受保护的资源做降级处理
自定义受保护的资源try…catch()try(Entry entry = SphU.entry("seckillSkus")) { ///业务逻辑 }2)基于注解 @SentinelResource(value = "getCurrentSeckillSkusResource", blockHandler = "blockHandler")1 和 2 一定要配置被限流以后的默认返回url,请求可以设置统一返回在application.yml中添加#开启fe原创 2021-03-04 21:56:20 · 249 阅读 · 2 评论 -
Sentinel整和springboot在提供方对请求做降级处理
添加maven依赖<!--引入sentinel 熔断 降级 --><dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId></dependency>在项目的application.yml中添加如下配置信息: #配置sentin原创 2021-03-04 15:45:02 · 301 阅读 · 1 评论 -
Java 8: LocalDate、LocalTime 、LocalDateTime 处理日期时间
JDK8中,新增了三个类,用以处理时间。LocalDate专门处理日期,LocalTime专门处理时间,LocalDateTime包含了日期和时间,而且对于很多复杂的问题,都提供了现成的方法,比如:获取2017年12月的第一个周一等。package test; import java.time.DayOfWeek;import java.time.LocalDate;import java.time.LocalDateTime;import java.time.LocalTime;impor原创 2021-03-03 15:36:22 · 647 阅读 · 1 评论 -
springboot整合定时任务与异步任务
添加配置信息 #spring给我们配的线程池 spring: task: execution: pool: core-size: 5 max-size: 50创建一个定时任务类/** * 定时任务 * @EnableScheduling 开启定时任务 * @Scheduled 开启一个定时任务 * 异步任务: * 1、@EnableAsync 开启异步任务 * 2、@Async 给希望异原创 2021-03-03 14:41:40 · 277 阅读 · 2 评论 -
springboot实现支付宝支付
1、进入蚂蚁金服开放平台https://open.alipay.com/platform/home.htm2、下载支付宝官方Demo,进行配置和测试文档地址:https://openhome.alipay.com/docCenter/docCenter.htm 创建应用对应文档https://opendocs.alipay.com/open/200/105304 网页移动应用文档https://opendocs.alipay.com/open/54/cyz7do 相关Demo3、使用沙箱原创 2021-03-02 20:35:10 · 2048 阅读 · 0 评论 -
内网穿透
1、简介内网穿透功能可以允许我们使用外网的网址来访问主机 正常的外网需要访问我们项目的流程是:1、买服务器并且有公网固定IP2、买域名映射到服务器的IP3、域名需要进行备案和审核2、使用场景1、开发测试(微信、支付宝)2、智慧互联3、远程控制4、私有云3、内网穿透常用的软件1、natapp:https://natapp.cn/ 2、续断: www.zhexi.tech 3、花生壳: https://www.oray.com/这里我们以断续为例:下载客户端安装到本地新建隧道其原创 2021-03-02 13:09:45 · 165 阅读 · 0 评论 -
订单业务中如何保证接口的幂等性
在我们的订单业务中,未来保证接口的幂等性在点击了去结算,跳转到订单结算页面时,要在后端生成一个验证幂等性的防重令牌token回传到前端,之后提交订单的时候将其传递到后端进行校验。 /** * 去结算 * 给订单确认ye返回数据 */ @Override public OrderConfirmVo confirmOrder() throws ExecutionException, InterruptedException { //要原创 2021-02-27 19:25:53 · 2222 阅读 · 0 评论 -
ThreadLocal身份验证,购物车
ThreadLocal 的作用?ThreadLocal是解决线程安全问题一个很好的思路,它通过为每个线程提供一个独立的变量副本解决了变量并发访问的冲突问题。在很多情况下,ThreadLocal比直接使用synchronized同步机制解决线程安全问题更简单,更方便,且结果程序拥有更高的并发性。ThreadLocal的应用场景?在Java的多线程编程中,为保证多个线程对共享变量的安全访问,通常会使用synchronized来保证同一时刻只有一个线程对共享变量进行操作。这种情况下可以将类变量放到Threa原创 2021-02-24 12:14:37 · 324 阅读 · 0 评论 -
聚合工程打包
如图在单点登录xxl-sso聚合工程的下面有xxl-sso-core,xxl-sso-samples,xxl-sso-server三个子模块,在xxl-sso目录下面执行命令mvn clean package -Dmaven.skip.test=true就能将子模块都打包好。原创 2021-02-23 16:43:51 · 188 阅读 · 0 评论 -
SpringSession解决分布式session不同步不共享问题
我们在auth.gulimall.com中保存session,但是网址跳转到 gulimall.com中,取不出auth.gulimall.com中保存的session,这就造成了微服务下的session不同步问题同一个服务复制多个,但是session还是只能在一个服务上保存,浏览器也是只能读取到一个服务的session添加依赖: <!-- 整合Spring Session完成session共享问题 微服务自治,就不放在common里了--> <depe原创 2021-02-22 23:11:54 · 643 阅读 · 1 评论 -
springboot实现发送短信验证码和验证码防刷校验
我们这里使用的验证码发送是阿里云短信https://market.aliyun.com/products/57000002/cmapi00039249.html?spm=5176.2020520132.101.3.53e87218NGtSXW#sku=yuncode3324900001服务商提供的接口地址,请求参数都不同,请参考服务商提供的测试代码测试发送短信验证码,这里的demo可以在阿里云处复制过来@Testpublic void contextLoads() { String hos原创 2021-02-21 22:57:56 · 1398 阅读 · 1 评论 -
springboot项目中如何配置线程池
一、在application.properties文件中添加如下配置信息项目结构:#配置自定义的线程池gulimall.thread.core-size=20gulimall.thread.max-size=200gulimall.thread.keep-alive-time=10二、创建一个属性绑定类//跟配置文件绑定@ConfigurationProperties(prefix = "gulimall.thread")@Component@Datapublic class Th原创 2021-02-21 11:01:10 · 769 阅读 · 1 评论 -
SpringCache的Cacheable,CacheEvict,Cacheput,Caching使用方式
1、引入maven<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <!-- Lettuce的bug导致netty堆外内存溢出 切换使用jedis--> <exclusio原创 2021-02-19 14:47:32 · 374 阅读 · 0 评论 -
jmeter做压力测试
一、创建线程组二、设置线程信息点击线程组,添加监听器观察结果树。查看汇总报告原创 2021-02-17 14:10:35 · 59 阅读 · 0 评论 -
全文检索ElasticSearch整合Springboot整合hight-level-client
1.5 Elasticsearch - Rest - client1、9300:TCPSpring-data-elasticsearch:transport-api.jarSpringBoot版本不同,transport-api.jar 不同,不能适配 es 版本7.x 已经不在适合使用,8 以后就要废弃2、9200:HTTPJestClient 非官方,更新慢RestTemplate:默认发送 HTTP 请求,ES很多操作都需要自己封装、麻烦HttpClient:同上Elasticsea原创 2021-02-11 00:03:58 · 245 阅读 · 0 评论 -
springboot配置事务管理
一、引入依赖<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.8.RELEASE</version> <relativePath/> <!-- lookup parent from repo原创 2021-02-08 23:07:12 · 339 阅读 · 0 评论 -
Object划分
原创 2021-02-07 16:42:09 · 68 阅读 · 0 评论 -
springboot使用JSR303对提交的参数进行校验包括分组校验,自定义校验
一、如果我们想要对传入的参数进行校验,只需要在接收前端传入的实体类上使用注解即可/** * 品牌 * * @date 2019-10-01 21:08:49 */@Data@TableName("pms_brand")public class BrandEntity implements Serializable { private static final long serialVersionUID = 1L; /** * 品牌id */ @NotNull(message原创 2021-02-06 20:52:21 · 257 阅读 · 0 评论 -
springboot统一异常处理
exception结构:定义全局异常处理类package com.zjm.servicebase.exceptionhandler;import com.zjm.commonutils.util.ExceptionUtil;import com.zjm.commonutils.result.R;import lombok.extern.slf4j.Slf4j;import org.springframework.validation.BindingResult;import org.sp原创 2021-02-06 18:01:38 · 107 阅读 · 0 评论 -
cap理论详解
CAP 定理的含义一、分布式系统的三个指标1998年,加州大学的计算机科学家 Eric Brewer 提出,分布式系统有三个指标。ConsistencyAvailabilityPartition tolerance它们的第一个字母分别是 C、A、P。二、ConsistencyConsistency 中文叫做"一致性"。意思是,写操作之后的读操作,必须返回该值。举例来说,某条记录是 v0,用户向 G1 发起一个写操作,将其改为 v1。接下来,用户的读操作就会得到 v1。这就叫一致性原创 2021-02-01 18:12:25 · 267 阅读 · 0 评论 -
docker部署springboot项目
1.修改springboot项目数据库连接信息将配置文件里面的数据库连接地址改为docker安装的 mysql地址2.手动部署项目点击idea的packege在target目录下生成一个以.jar结尾的文件,将此包上传到linux\n## 3.使用Dockerfile文件部署项目\n\n将上传上来的springboot的jar文件拷贝到docker文件夹下\n\ncp exam-0.0.1-SNAPSHOT.jar /usr/local/docker/exam\n\n\ncd /usr/local/d原创 2021-02-01 17:49:56 · 147 阅读 · 0 评论 -
权限管理之递归查询菜单列表和递归删除菜单列表
首先我们先来看一下表结构CREATE TABLE `acl_permission` ( `id` char(19) NOT NULL DEFAULT '' COMMENT '编号', `pid` char(19) NOT NULL DEFAULT '' COMMENT '所属上级', `name` varchar(20) NOT NULL DEFAULT '' COMMENT '名称', `type` tinyint(3) NOT NULL DEFAULT '0' COMMENT '类型(原创 2021-01-30 21:45:54 · 493 阅读 · 0 评论 -
springboot添加定时任务
在启动类上添加注解@EnableScheduling@SpringBootApplication@ComponentScan(basePackages = {"com.hjh"})@EnableDiscoveryClient@EnableFeignClients@MapperScan("com.hjh.mapper")@EnableSchedulingpublic class StaApplication { public static void main(String[] args原创 2021-01-29 19:46:44 · 79 阅读 · 0 评论 -
springboot实现微信扫码登录
首先登录微信开放平台找到对应开发微信登录的api文档https://developers.weixin.qq.com/doc/oplatform/Website_App/WeChat_Login/Wechat_Login.htm在application.properties中添加# 微信开放平台 appidwx.open.app_id=wxed9954c0ttttttttt# 微信开放平台 appsecretwx.open.app_secret=a748251723rrrrrrrrrrrrrr原创 2021-01-27 16:53:28 · 787 阅读 · 0 评论 -
springboot使用JWT实现单点登录
首先引入JWT依赖<!-- JWT--><dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId></dependency>准备一个JWT的工具类,里面包含生成token,解析token等public class JwtUtils { //常量 public static final原创 2021-01-26 20:55:47 · 502 阅读 · 0 评论 -
springboot缓存@Cacheable实现redis缓存机制
添加依赖:<!-- redis --><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- spring2.X集成redis所需common-pool2--><dependenc原创 2021-01-25 21:14:43 · 1456 阅读 · 0 评论 -
springboot实现阿里云视频点播技术----上传视频到阿里云视频点播存储起来
一、开通阿里云视频点播根据api文档引入对应的的sdk的依赖<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-vod</artifactId></dependency><dependency> <groupId>com.aliyun</groupId> <artifa原创 2021-01-23 21:20:27 · 1065 阅读 · 1 评论 -
springboot统一日志处理
在springboot中使用logback来记录日志。在resource目录下添加一个文件叫logback-spring.xml在里面添加如下内容:<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="10 seconds"> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR <原创 2021-01-22 20:37:24 · 163 阅读 · 0 评论 -
springboot使用easyExcel实现写入数据到excel表格中
由于easyExcel是在poi基础上进行的封装,所以需要引入poi依赖<!--xls--><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${poi.version}</version> </dependency> <!--xlsx--原创 2021-01-20 23:22:42 · 2433 阅读 · 0 评论 -
springboot使用easyExcel读取excel表格中的数据到数据库
由于easyExcel是在poi基础上进行的封装,所以需要引入poi依赖<!--xls--><dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>${poi.version}</version> </dependency> <!--xlsx--原创 2021-01-20 22:53:47 · 2327 阅读 · 0 评论 -
springboot上传文件到阿里云oss对象存储服务器
一、在阿里云后台创建二、引入阿里云oss依赖<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId></dependency>三、配置文件application.properties中添加oss的配置信息spring.application.name=servi原创 2021-01-20 10:30:48 · 1090 阅读 · 0 评论 -
springboot使用注解版的SpringSecurity做权限管理
1、引入maven <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>项目结构2、在config包下面创建一个配置类SecurityConfigTest继承WebSecurityCo原创 2021-01-13 17:42:24 · 544 阅读 · 0 评论 -
Junit5单元测试的常用注解
JUnit5的注解与JUnit4的注解有所变化https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations• @Test :表示方法是测试方法。但是与JUnit4的@Test不同,他的职责非常单一不能声明任何属性,拓展的测试将会由Jupiter提供额外测试• @ParameterizedTest :表示方法是参数化测试,下方会有详细介绍• @RepeatedTest :表示方法可重复执行,下方会有详细介绍•原创 2021-01-08 20:52:28 · 831 阅读 · 0 评论 -
springboot配置注解版的mybatis和mybati-plus
引入maven <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.17</version> </dependency> <dependency> <groupId>or原创 2021-01-07 20:53:09 · 256 阅读 · 1 评论 -
springboot配置druid数据源及其监控
引入maven依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->原创 2021-01-07 15:00:27 · 314 阅读 · 0 评论