分类

链接

2024 年 11 月
 123
45678910
11121314151617
18192021222324
252627282930  

近期文章

热门标签

新人福利,免费薅羊毛

springboot使用lock4j实现并发控制

一般情况下,我们使用乐观锁来处理并发超发的情况,但是,乐观锁在某些情况下,并不能彻底解决超发情况,于是只能上悲观锁(synchroized, 独占线程),特别是在分布式的情况下分布试锁就更为常见了。 下以使用一种基于redis的分布试锁来实现并发控制。 pom.xml增加: <!--若使用redisson作为分布式锁底层,则需要引入--> <dependency> <groupId>com.baomidou</groupId> <artifactId>lock4j-redisson-spring-boot-starter</artifactId> <version>2.2.2</version...

JAVA 暂无评论 阅读(151)

springboot全局增加sentinel

pom.xml增加: <!--sentinel--> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-core</artifactId> <version>1.8.6</version> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> <artifactId>sentinel-annotation-aspectj</artifactId> <version>1.8.6</version> </dependency> <dependency> <groupId>com.alibaba.csp</groupId> ...

JAVA 暂无评论 阅读(131)

Springboot整合Swagger常用注解

swagger注解主要是用来给swagger生成的接口文档说明用的 1、@Api 使用范围:用在 类上 注解,控制整个类生成接口信息的内容,表示对类的说明,也代表了这个类是swagger2的资源 参数: tags:说明该类的作用,参数是个数组,可以填多个,在UI视图中就显示几个控制器访问菜单 value:该参数没什么意义,在UI界面上不显示,所以不用配置 description :用户基本信息操作,已过时,不建议使用   2、@ApiModel 使用范围:用于响应实体类上,用于说明实体作用 参数: value:自定义实体 description:详细描述实体...

JAVA 暂无评论 阅读(90)

swagger隐藏authentication参数

@Bean public Docket oauthApi() {     return new Docket(DocumentationType.SWAGGER_2)         .groupName("oauth")         .apiInfo(metaData())         .ignoredParameterTypes(Authentication.class)         .select()         .apis(RequestHandlerSelectors.any())         .paths(PathSelectors.ant("/oauth/**"))         .build()         .securitySchemes(Collections.singletonList(securitySchema()))         .securityContexts(Collections.singletonList(securityContext())); }

JAVA 暂无评论 阅读(69)

Spring Security 中的自定义PreAuthorize 注解

controller: @NeedAdmin @GetMapping(path ="user", produces ="application/json") publicResponseEntity<User> getUser(@RequestParamString login){ ... } 自定义注解anno: @PreAuthorize("hasAuthority('Admin')") @Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface  NeedAdmin { }

JAVA 暂无评论 阅读(94)

JACKSON和FASTJSON处理返回JSON数据中为NULL字段不显示

JACKSON 1.实体上 将此注解放在属性上,如果该属性为null则不参与序列化(为null的字段不显示) 如果放在类上边,那对这个类的全部属性起作用,展示所有字段。 @JsonInclude(JsonInclude.Include.ALWAYS)   //放在类上,展示所有字段 Include.Include.ALWAYS 默认展示所有字段 Include.NON_DEFAULT 属性为默认值不序列化 Include.NON_EMPTY 属性为 空("") 或者为 NULL 都不序列化 Include.NON_NULL 属性为NULL 不序列化   FASTJSON     package com.aiqin.bms.slcs.api.config;       import com.ali...

JAVA 暂无评论 阅读(153)

将数据从mysql迁移到clickhouse

1、关于clickhouse的介绍 https://zhuanlan.zhihu.com/p/370201180   2、京东使用clickhouse存储秒级100G日志数据: https://new.qq.com/omn/20220408/20220408A03TA600.html   3、将MySQL数据迁徙到clickhouse内操作步骤: #clickhouse-client 🙂 create database newDB; 🙂 use newDB; –导入数据: CREATE TABLE Orders ENGINE = MergeTree ORDER BY OrderID AS SELECT * FROM mysql(‘10.42.134.136:3307’, ‘DBNAME’, ‘Orders’, ‘root’, ‘PASSWORD’);   Ok. 0 rows in set. Elapsed: 1832.114 sec....

MySQL, 大数据 暂无评论 阅读(276)

springboot登录失败3次后需要验证码的设计及实现

前言: 不用验证码是方便登陆,用验证码是为了防止暴力破解。为了即能满足方便,同时防止暴力破解,需要使用用户登陆失败3次后出现验证码。   1. 登陆失败次数记录, 在login 中查询并记录用户登陆失败次数 WARNING: 无论验证成功还是失败,前端都刷新验证码。后端验证码用一次就失效 @RequestMapping("/login")   public Result login(@RequestBody LoginBody loginBody){   int errorTimes = redis.get(loginBody.getUsername()+"-loginError");      bool needKaptcha = false;       if(errorTimes>2...

JAVA 暂无评论 阅读(236)

Mybatis —— 解决单引号带来的sql注入问题

问题 当使用${}写sql时,如果输入的字段中含有单引号,就会发生sql注入,改变原有的sql逻辑,应该如何处理呢? 解决 将单引号,替换为两个单引号即可。 String regexp = "\'"; str.replaceAll(regexp, "\'\'");

JAVA 暂无评论 阅读(421)

Springboot整合Nacos(动态改变数据库连接参数)

这个是整合nacos的教程,我在网上找相关文档,都不满意,就自己试了一下,然后分享出来。 1 安装Nacos。 安装很简单,这里就不说啦。直接说整合 2 Springboot中引入Nacos <span class="token comment">&lt;!--nacos--&gt;</span> <span class="token tag"><span class="token punctuation">&lt;</span>dependency<span class="token punctuation">&gt;</span></span> <spa...

Others 暂无评论 阅读(175)