自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 @Target、@Retention、@Documented注解

@Target、@Retention、@Documented注解简介源码样例:@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@Inheritedpublic @interface MthCache { String key();}@Target 注解功能:指明了修饰的这个注解的使用范围,即被描述的注解可以用在哪里。ElementType的取值包含以下几种:TYPE:类,接口或

2020-09-29 15:39:41 591

原创 intValue()和ValueOf()是数据类型转化的两个方法。

intValue()和ValueOf()是数据类型转化的两个方法。intValue()du 如Integer类型,就会有intValue()方法,zhi意思是说,把daoInteger类型转化为Int类型。valueOf() 如String就有valueOf()方法,意思是说,要把参数中给的值,转化为String类型,Integer的valueOf()就是把参数给的值,转化为Integer类型。...

2020-08-09 15:04:14 475

原创 BeanUtils.copyProperties()用法

Spring BeanUtils类提供属性字段复制方法1.public static void copyProperties(Object source, Object target)内部都是调用下面的私有方法2.public static void copyProperties(Object source, Object target, String… ignoreProperties)内部都是调用下面的私有方法,ignoreProperties可以是一组需要忽略复制的字符串3.public s

2020-07-31 21:11:29 841

原创 JWT生成私钥和公钥

1、生成私钥和公钥JWT令牌生成采用非对称加密算法生成密钥证书下边命令生成密钥证书,采用RSA算法每个证书包含公钥和私钥keytool -genkeypair -alias heart -keyalg RSA -keypass zengbing -keystore xc.keystore -storepass zengbing-alias : 密钥的别名-keyalg :使用的hash算法-keypass :密钥的访问密码-keystore :密钥库文件名,xc.keystore保存了生

2020-07-29 10:59:56 4685

原创 阿里云短信接口实现模板

1、首先我们需要前端传送的手机号phone,每次请求接口时都去redis缓存中以phone作为key去查有没有对应的code,如果存在,则不发送验证消息;如果code为空,则自动生成一个四位数验证码,调用send()方法,其中“SMS_154161”是我们在阿里云生成的一个templateCode,然后我们吧phone和code以key、value的形式存入我们的redis缓存中,同时设置过期时间。import com.aliyuncs.utils.StringUtils;import com.sms.

2020-07-28 08:43:19 1294

原创 public static <T> T methodName

1、的意义按理说有一个T表示返回值就可以了,为什么还要一个呢?这个表示这个方法声明为泛型方法.但是又有一种情况出现了,同样是泛型方法,为什么下面的getName方法就不用声明呢?public class Test1<T> { private T name; public T getName(T name){ return name; } public static <T> void printA(T a){ Sy

2020-07-27 14:57:24 798

原创 解决PostMan请求Oauth2刷新token报401 Unauthorized和Invalid_client Bad Client Credentials问题

一、首先拿到生成的token和刷新token{ "access_token": "e0140394-918f-4301-b4b4-2ab7adf77a31", "token_type": "bearer", "refresh_token": "2b2ce3b5-7f6e-4cc4-8cef-822b6246b1b9", "expires_in": 3564, "scope": "server", "user_id": 1, "username": "

2020-07-27 08:28:52 5411

原创 Spring security Oauth2认证流程

Spring security Oauth2认证Spring security 是一个强大的和高度可定制的身份验证和访问控制框架,Spring security 框架集成了Oauth2协议1、用户请求认证服务完成认证。2、认证服务下发用户认证身份令牌,拥有身份令牌表示身份合法。3、用户携带令牌请求资源服务,请求资源服务必先经过网关4、网关校验用户身份令牌的合法,不合法表示用户没有登录,如果合法则放行继续访问。5、资源服务获取令牌,根据令牌完成授权。...

2020-07-26 10:00:12 317

原创 oAuth2用户授权认证

一、用户认证与授权1、什么是用户身份认证用户身份认证即用户去访问系统资源对系统要求验证用户的身份信息,身份合法可继续访问,常见的用户认证表现形式有:用户名密码登录,指纹打卡等方式2、什么是用户授权?用户认证通过后去访问系统的资源,系统会判断用户是否拥有访问资源的权限,只允许访问有权限的系统资源,没有权限的资源无法访问,这个过程叫做授权。二、单点登录需求 项目包括很多个子项目,如:学习系统,教学管理中心,系统管理中心等,为了提高用户体验性需要实现用户只认证一次便可以在 多个拥有访问权限的系

2020-07-26 08:27:24 910

原创 服务降级(服务回退)

服务降级(服务回退)所有的 RPC 技术里面服务降级是一个最为重要的话题,所谓的降级指的是当服务的提供方不可使用的时候,程序不会出现异常,而会出现本地的操作调用。例如:在每年年底 12306 都是最繁忙的时候,那么在这个情况会发现有一些神奇的情况:当到了指定的时间大家开始抢票的 时候,如果你不抢,而后查询一些冷门的车次,票有可能查询不出来。因为这个时候会将所有的系统资源给抢票调度了,而其它的 服务由于其暂时不受到过多的关注,这个时候可以考虑将服务降级(服务暂停)。服务的降级处理是在客户端实现的,与你的

2020-07-25 15:08:20 832

原创 @FeignClient注解理解

Feign基本介绍首先来个基本的普及,怕有些同学还没接触过Spring Cloud。Feign是Netflix开源的一个REST客户端,通过定义接口,使用注解的方式描述接口的信息,就可以发起接口调用。GitHub地址:https://github.com/OpenFeign/feign下面是GitHub主页上给的一个最基本的使用示列,示列中采用Feign调用GitHub的接口。 interface GitHub { @RequestLine("GET /repos/{owner}/{repo

2020-07-25 08:32:09 4835

原创 关于mybatis中,<foreach item=“xxx“ index=“xxx“ collection=“xxx“ separator=“xxx“>详解

(1)collection = “” ,这个参数是 dao 层(mapper)接口方法里面传过来的集合参数,如果dao 层传的参数只有一个,这里写关键字 list(如果是数组,写 array)例子:dao 层:User getInfo(List user_ids)collection = “list”【如果有多个参数,并且使用了 @Param 注解(import org.apache.ibatis.annotations.Param),则这里要写注解里面的参数!例子: dao 层 :User

2020-07-24 10:02:54 2399

原创 解决 javaweb后端传json值给前端date丢失问题

在属性的get方法上加上注解对时间进行格式化(@JsonFormat(pattern = “yyyy-MM-dd HH:mm:ss”, timezone = “GMT+8”))@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime;

2020-07-24 08:43:23 379

原创 父级、子集下拉树递归列表

获取部门下拉树列表Controller @GetMapping("/treeSelectAll") public AjaxResult treeSelectAll(SysDept sysDept){ LoginUser loginUser = SecurityUtils.getLoginUser();//获取用户信息 Long userId = loginUser.getUserId(); List<SysDept> depts = d

2020-07-23 11:19:09 288

原创 查询父节点、子节点集合

查询父节点集合@GetMapping("/selectDeptParentList") public AjaxResult selectDeptParentList(@RequestParam Long parentId){ List<SysDept> list = deptService.selectDeptParentList(parentId); if(list.size()>0 && list != null){

2020-07-23 10:06:30 278

原创 查询部门列表(排除子节点)

查询部门列表(排除子节点)@GetMapping("/list/excludeChild/{deptId}")public AjaxResult excludeChild(@PathVariable(value = "deptId",required = false) Long deptId){ List<SysDept> depts = deptService.selectDeptList(new SysDept()); Iterator<SysDept> it = dep

2020-07-23 09:27:54 482

原创 微服务用户登录流程

2020-07-21 16:16:23 937

原创 element+vue+springBoot完整版上传图片

1、vue.vue<template> <div> <el-form-item label="图片地址" prop="pictureAddress"> <el-upload class="avatar-uploader" :action="url" :show-file-list="false" :on-success="successHandle">

2020-06-12 17:30:17 1342

原创 Uncaught (in promise) cancel原因:this.$confirm方法内置pormise方法所以不能把.catch()去掉(因为取消操作时,无法捕获)

cancelSponsor(id) { this.$confirm(`确定撤销主办方`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { this.$http({ url: this.$http.adornUrl(`/active/middle

2020-06-12 16:34:24 899

原创 vue+element之el-select的回显使用(这是个弹框操作)

标题前端vue+element之el-select的回显使用(这是个弹框操作)<template> <el-dialog :title="!dataForm.id ? '新增' : '修改'" :close-on-click-modal="false" :visible.sync="visible"> <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.ent

2020-06-12 09:48:31 3410

原创 $refs的使用

$refs父组件调用子组件的方法,可以传递数据。父组件 $refsFa.vue<template> <div> <div>$refs父组件调用子组件的方法,可以传递数据</div> <h1>父组件数据:{{msg}}</h1> <refsCh ref="child"></refsCh > <button @click="updateCity()"&gt

2020-06-11 21:26:28 162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除