- 博客(215)
- 收藏
- 关注
原创 go-zero 实战(4)
在 userapi/internal/logic/userapilogic.go 文件的 GetUser 方法加一段逻辑测试用postman 测试后,结果如图。显然,很多情况下,我们不想直接获取到这种形式的错误。更愿意拿到一个 json 格式的错误,包括错误代码,错误内容。这样更容易处理。
2024-05-23 12:30:14
1222
1
原创 go-zero 实战(2)
中,使用了go-zero 创建了order 和 user 两个微服务。而order作为grpc的客户端,user 作为grpc的服务端,打通了 order 到 user的调用。接下来,我们在user中,加入mysql组件。确保数据能够写到数据库。
2024-05-21 16:38:26
1229
原创 go-zero 实战(1)
go 版本goctl 安装goctl(官方建议读 go control)是 go-zero微服务框架下的代码生成工具。这时候会在 gopath 的 bin 目录下生成 goctl 的执行进程protoc & protoc-gen-go 安装。
2024-05-20 15:21:51
845
2
原创 docker 运行 tdengine 并且mybatis 连接
指定 hostname,客户端连接的时候会用到。指定 版本,因为后面的安装的客户端和java连接时使用的驱动,需要匹配。
2024-02-19 15:36:06
918
原创 Redis基本命令
1. 查看当前库中所有的Keykeys *2. 判断某个key是否存在exists key3. 查看key的类型type key4. 删除指定key的数据del key5. 非阻塞删除,仅将key从keyspace元数据中删除,真正的删除会在后续异步执行unlink key6. 为给定的key设置过期时间expire key 107. 查看key还有多少秒过期,-1表示永不过期,-2表示已过期ttl key8. 切换数据库,redis默认有16个数据库,分别从0~1
2022-04-27 10:21:06
935
原创 SpringBoot 配置多数据源
1. Maven配置<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.
2022-04-20 22:41:03
1697
原创 tdengine集群安装部署
1. 官网下载server和client安装包,保证服务端和客户端的版本一致server: TDengine-server-2.4.0.16-Linux-x64.tar.gz (15.5 M)client:TDengine-client-2.4.0.16-Linux-x64-Lite.tar.gz (3.1 M)2. 集群规划(4台centos7虚拟机)pciphostnamelinux-1192.168.101.78h1.taosdata.comlinux-219
2022-04-19 12:15:46
2233
原创 QueryDSL 关于Q类找不到的问题
先编译代码,如果是在idea中,光标移动到项目上,F4,让后如图操作2. 回到项目中编码,就可以找到Q类了
2022-03-10 19:29:28
5146
5
原创 使用阿里云的身份证实名认证接口
如何使用身份证实名认证接口呢?充钱!充钱!充钱!首先,去阿里云市场购买身份证实名认证服务。购物之后,我们会得到:AppKey,AppSecret,AppCode根据官方提供的实例代码,使用实名认证接口。我这里有一个自己测试过的代码,发生请求,用到的Spring提供的RestTemplate类。 /** * * @param realName 用户的真实姓名 * @param carNum 用户的身份证号码 * @return 验证的结果
2022-02-21 21:32:40
8485
原创 前后端分离项目-密码传输
在前端登录或者注册过程中,需要向后端传送密码。密码需要先加密,保证传输过程不被窃取和查看。可以对密码MD5后传输到后端。(前提是密码要足够复杂,这样生成的MD5不容易使用彩虹表破解)后端使用加盐加密算法对MD5值进行处理后存储在数据库中。可以使用SpringSecurity 中的BCryptPasswordEncoder类处理MD5。使用其提供的 matches 方法进行密码比对就可以了。...
2022-02-21 11:14:14
5425
原创 更安全的验证方式-极验验证
简介极验验证是一种在计算机领域区分自然人和机器人的,通过简单集成的方式,为开发者提供安全、便捷的云端验证服务,与以往传统验证不同的是,极验通过分析用户完成拼图过程中的行为特征,通过数据分析来判断是人还是机器。注册https://www.geetest.com/Register注册完成后,获取到ID和KEY。相关参考文档文档地址:https://docs.geetest.com/sensebot/start/服务端:https://docs.geetest.com/sensebot/deploy
2022-02-20 10:08:37
898
原创 Kotlin的 Object关键字 和 by关键字
每天吃完饭,总要洗碗。围裙妈妈规定,如果是大头儿子洗碗,那我就给他一块钱;如果是小头爸爸洗碗,那我就给他十块钱。今天轮到了小头爸爸洗碗。可是呢,小头爸爸太懒了,想让大头儿子洗碗。但是又太贪心了,他就把洗碗的任务委托给大头儿子去做,最后拿到10块钱,分1块钱给大头儿子,自己得到9块,关键是没干活呀!如果是在Kotlin中如何实现?洗碗接口interface IWashBowl { fun washBowl();}大头儿子洗碗object BigHeadSon : IWashBow
2022-02-17 23:14:14
1017
原创 RBAC权限模型-关于菜单
RBAC模型中,角色是权限的集合。用户和角色关联。当把某一角色赋予给一个用户后,该用户也就有了该角色对应的所有权限。菜单与用户权限对应。一个菜单下可以对应多种权限。比如该菜单下对数据进行增、删、改、查权限,也可以对数据进行导入导出的权限。当把某一菜单的增、查的权限赋予某一个角色的时候。拥有该角色的用户便能在该菜单下对数据进行增加和查看,但是由于没有删除,修改、导出的权限,那么该用户便不能对数据进行修改、删除和导出。RBAC权限模型中有:用户表 user角色表 role用户角色关联表 user_r
2022-02-16 09:08:29
1344
原创 SpringSecurity 学习(二)
SpringSecurity1. antMatchers()方法定义:public C antMatchers(String... antPatterns)方法参数不定,每个参数都是一个ant表达式,用于匹配URL规则。规则如下:?: 匹配一个字符*: 匹配0个活多个字符**: 匹配0个活多个目录在实际项目中我们经常要放行所有静态资源,如放行js文件夹下的所有脚本。.antMatchers("/js/**").perimitAll()还有一种配置方式是只要是.js文件都放行
2022-02-14 15:46:29
5738
原创 SpringSecurity 学习(一)
SpringSecuritySpringSecurity简介安全框架概述什么是安全框架?解决系统安全问题的框架。如果没有安全框架,我们需要手动处理每个资源的访问控制,非常麻烦。使用安全框架,我们可以通过配置的方式实现对资源的访问限制。常用的安全框架Spring Security:Spring家族中的一员。是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置Bean,充分利用了Spring IoC,DI和AOP功能,
2022-02-13 11:51:06
444
原创 Java 代码转换成 Kotlin代码的一些总结
Java的Public类转换成Kotlin代码后,类前要加openJava类中的静态方法,转换成Kotlin代码后,静态方法放在Kotlin类中的 companion object 代码块中lombok插件不能在kotlin代码中使用Slf4j日志库不能在Kotlin中使用,但是可以使用 mu.KotlinLogging@Autowried注解的使用java中使用 @Autowired private SysLoginService loginService;kotlin中.
2022-02-12 16:30:29
1477
原创 使用MyBatisPlus的字段自动填充功能
比如对于用户增加和修改操作,数据库通常需要记录修改时间,更新时间等字段。在Spring IOC容器放入组件 AutoFillHandler, 该组件需要实现MetaObjectHandler并增对数据表中需要填充的字段做设置@Componentpublic class AutoFillHandler implements MetaObjectHandler { /** * 插入元对象字段填充(用于插入时对公共字段的填充) * 新增数据时要添加的为: * 1
2022-02-10 12:02:30
935
原创 Kotlin集合相关
getOrElse 和 getOrNull 函数fun main(args: Array<String>) { val list = listOf("Derry", "Zhangsan", "Lisi", "Wangwu") println(list.getOrElse(3){}); println(list.getOrElse(10){}) println(list.getOrNull(110))}这种安全的调用方式,避免出现空指针异常或下标越界..
2022-02-09 17:29:55
1064
原创 kotlin基本特性
可空类型如果要定义一个变量,并且赋值null,在kotlin中需要这样做,否则编译不过如果想给空,需要在定义变量的时候,加?号var name2: String ?name2 = nullname2?.chars() // 如果name2是null的情况下,chars()是不会被执行的,从而避免空指针异常;如果不加?调用chars()函数,则编译不通过,因为系统判断name2有可能为空var name2: String ?// name2 = " "name2 = "ssdf"..
2022-02-09 16:25:09
875
原创 前端编译的一些总结
拿过别人的前端项目,首先要做的第一步是:检查node版本是否匹配。如果自己当前环境的node版本和项目要求版本不一致,先修改版本。
2022-02-09 11:07:05
440
原创 Kotlin 匿名函数
匿名函数内筛选var len = "Harry Potter".count()println(len)// 匿名函数,在函数{} 内,计算满足条件的字符的长度var length = "Harry Potter".count() { it == 'r'}println(length)函数的定义与实现和调用val methodAction: () -> String // 函数的声明methodAction = { val input = 999999..
2022-02-08 16:38:34
479
原创 自定义日志切面
所有的api都作为切面,当有对api的访问时,记录日志。WebLog是一个自定义类:@Data@EqualsAndHashCodepublic class WebLog { /** * 操作描述 */ private String description; /** * 操作用户 */ private String username; /** * 消耗时间 */ private Intege
2022-02-08 12:31:58
279
原创 JetCacheConfig的使用
引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- ali's jetcache--><dependency> <groupId>com.alicp...
2022-02-08 12:16:21
716
原创 @EnableGlobalMethodSecurity 注解
当我们想要开启spring方法级安全时,只需要在@Configuration实例上使用@EnableGlobalMethodSecurity 注解就能达到此目的。注解参数:@EnableGlobalMethodSecurity(jsr250Enabled = true)@EnableGlobalMethodSecurity(prePostEnabled = true)如果prePostEnabled值为true(默认为false),以下在方法上的四个注解可用:@PreAuthorize
2022-02-08 08:47:06
864
原创 Kotlin基本
range 表达式val number = 148if (number in 10..59) { println("fail")} else if (number in 0..9) { println("too bad")} else if (number in 60..100) { println("very well")} else { println("God")}when 表达式 val day = 5 val dayinfo ..
2022-02-07 18:35:43
662
原创 maven版本过低,打包时警告:“org.quartz-scheduler:quartz:jar with value ‘*‘ does not match a valid id pattern.“
‘dependencyManagement.dependencies.dependency.exclusions.exclusion.artifactId’ for org.quartz-scheduler:quartz:jar with value ‘’ does not match a valid id pattern. @ org.springframework.boot:spring-boot-dependencies:2.2.5.RELEASE, /home/letcode/.m2/reposit
2022-02-07 11:42:28
1678
原创 mapstruct
MapStruct是一个开源的基于Java的代码生成器,用于创建实现Java Bean之间转换的扩展映射器。<dependency> <groupId>org.mapstruct</groupId> <artifactId>mapstruct-jdk8</artifactId></dependency><dependency> <groupId>org.mapstruct</
2022-02-07 10:19:21
829
原创 swagger 与 springfox的关系
springfox是swagger的一个开源实现,用在以SpringBoot作为后台开发框架中。swagger是一款流行的API管理管理。springfox实现了Swagger UI 和 Swagger-Core。在SpringBoot开发中,可以很方便地使用maven和gradle引入。...
2022-02-07 10:11:46
728
原创 Sentinel 流控规则不生效
maven 配置Spring Boot 2.2.5.RELEASE Spring Cloud Hoxton.SR3 Spring Alibaba 2.2.1.RELEASE <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifact
2022-01-24 15:48:37
5733
原创 centos7下安装chrome浏览器
下载rpm包wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm安装rpm包sudo yum localinstall google-chrome-stable_current_x86_64.rpm启动Chrome浏览器现在,您的CentOS系统上已安装Google Chrome,您可以通过在命令行中输入google-chrome &或单击Google Chrome图标(Appli
2022-01-24 09:34:14
719
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人