自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 【记录】一文带你搞懂Spring Security认证授权流程!

一文带你搞懂Spring Security认证授权流程!

2022-07-13 16:37:51 11078 2

原创 (记录)Springboot+Mybatis如何控制SQL打印级别

一、记录springboot的pom文件都会引一个parent<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.0.RELEASE</version> </parent>点进去这个paren

2022-04-20 17:33:59 987

原创 (记录) spring security 自定义多种方式登录授权(普通用户、管理员、第三方登录)

1. 自定义token,继承 AbstractAuthenticationToken目的:主要用于包装区别过滤条件。第2步用到。public class WxLoginAuthenticationToken extends AbstractAuthenticationToken { private static final long serialVersionUID = 510L; private final Object principal; private Object c

2022-03-17 11:20:07 2527 2

原创 (记录) spring security 自定义认证登录

**spring security 自定义认证登录1.概要1.1.简介spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等**。1.2.spring security 自定义认证流程1)认证过程生成未认证的AuthenticationToken ↑(获取信息) (根据AuthenticationToken分配provider)

2022-03-17 11:17:21 987

原创 (记录)SpringBoot2系列SpringBoot整合SpringSecurity实现认证拦截

一. SpringSecurity简介1. SpringSecurity概述Spring Security 是 Spring 社区的一个顶级项目,也是 Spring Boot 官方推荐使用的安全框架。除了常规的认证(Authentication)和授权(Authorization)之外,Spring Security还提供了诸如ACLs,LDAP,JAAS,CAS等高级特性以满足复杂场景下的安全需求。另外,就目前而言,Spring Security和Shiro也是当前广大应用使用比较广泛的两个安全框

2022-03-08 10:20:08 951

原创 Android仿企业微信/钉钉通信录水印背景

1.生成图片背景public class WaterMarkUtil { private DensityUtil densityUtil; // 声明单例 private volatile static WaterMarkUtil mInstance = null; public static WaterMarkUtil getInstance() { if (mInstance == null) { synchronized (S

2022-02-10 11:57:35 1853 3

原创 Android-Glide清除缓存图片

一、Glide加载图片缓存机制:Android的Glide在加载图片时候内部默认使用了缓存机制,Glide的缓存机制分为两级,第一级是内存缓存,然后第二级是硬盘缓存。缓存的过程首先是在内存中缓存,然后将加载的图片资源缓存到硬盘,这样就可以在随后的再次加载中使用缓存了,Glide使用缓存时候首先要检查内存这一层级是否缓存了相应的缓存,如果有,则直接使用,如果没有,则深入到硬盘缓存中检查是否有,如果有,则加载之,如果到这一步骤还没有,那么就只能作为一个全新的资源加载了。从这个过程中,Glide使用缓存无疑大

2022-02-07 16:43:07 3705 1

原创 (记录)Java基于redis实现分布式锁(SpringBoot)

前言分布式锁,其实原理是就是多台机器,去争抢一个资源,谁争抢成功,那么谁就持有了这把锁,然后去执行后续的业务逻辑,执行完毕后,把锁释放掉。可以通过多种途径实现分布式锁,例如利用数据库(mysql等),插入一条记录(唯一索引),谁插入成功,谁就持有锁;还可通过zookeeper来实现分布式锁,谁创建节点成功,谁就持有锁。本文介绍通过redis来实现分布式锁。实现分布式锁的步骤第一步:通过redis的setnx方式(不存在则设置),往redis上设置一个带有过期时间的key,如果设置成功,则获得了分布式

2021-09-26 17:09:27 134 1

原创 BigDecimal 保留小数位

Bigdecimal记录 BigDecimal decimal = new BigDecimal("1.55"); BigDecimal round_ceiling = decimal.setScale(1,BigDecimal.ROUND_CEILING); System.out.println("round_ceiling = " + round_ceiling + "\n"); BigDecimal round_down = decimal.setScale(1,

2021-09-18 15:50:16 1736 1

原创 @Scheduled cron 定时任务表达式含义用法及* ?的区别

**@Scheduled cron 定时任务表达式含义用法及* ?的区别**cron格式:【秒数】【分钟】【小时】【日期】【月份】【星期几】【年份(可省略)】关于【日期】与【星期几】的说明:1、【日期】与【星期几】两者为互斥的,不能同时设置。这个比较容易理解,假设日期设置为1,星期几也设置为1,那含义是什么:每月1日且为周一时触发,可能一年之中没用任何天能满足上述条件,更重要的是什么人能有这种xx的需求呢?2、【日期】与【星期几】中任何一个设置值(包含 *),另一个必需使用 ?来进行屏蔽,此时

2021-08-30 11:21:28 1769 3

原创 免费外网穿透教程

1. 打开http://www.ngrok.cc/注册帐号2. 开通一个隧道3. 填写信息4. 开通后的页面5. 到http://www.ngrok.cc/download.html下载自己所需要的客户端6. 解压下载文件的这个文件夹到硬盘

2021-03-03 16:02:36 19903 3

原创 记录做成绩排名表,实现同分同名次

代码如下:import java.util.*;import java.util.Map.Entry;import java.util.stream.Collectors; class Stu { // 学生类 private String name; private double score; // 成绩 public Stu(String name, double score) { this .name = name;

2021-02-25 10:07:41 598 2

原创 android接入websocket步骤,建立一个长连接(带心跳检测)从服务器端接收消息

1.首先需要在AndroidManifest.xml中开启一个服务:<!-- 后台服务-长连接 --><service android:name=".service.BackService" />2.添加引用implementation 'com.squareup.okhttp3:okhttp:3.12.1'3.写一个类BackService继承Service:public class BackService extends Service{ @Overrid

2021-02-18 11:22:56 1801 8

原创 Android 同一个工程打包多个不同包名的APK

修改app的build.gradle文件android { ... productFlavors { // app1 app1 { // 设置applicationId(这里很重要,两个相同applicationId的apk不同同时安装在同一台Android手机中) applicationId "com.johan.demo" // 自动生成@string/app_name为demo

2020-12-31 14:29:50 2975 1

原创 Android Studio 打包时 Signature Version 选择 V1 V2 说明

问题描述(v1和v2)Android 7.0中引入了APK Signature Scheme v2,v1是jar Signature来自JDKV1:应该是通过ZIP条目进行验证,这样APK 签署后可进行许多修改 - 可以移动甚至重新压缩文件。V2:验证压缩文件的所有字节,而不是单个 ZIP 条目,因此,在签名后无法再更改(包括 zipalign)。正因如此,现在在编译过程中,我们将压缩、调...

2019-12-01 19:59:16 177

原创 Android Studio Gradle 常用配置

Android Studio Gradle 常用配置详解什么是GradleGradle 是一个构建工具,他可以帮我们编译 构建 打包项目 可以配置自己的task任务,可以很方便的去引用第三方的类库根项目的gradle 整个项目的gradle配置文件apply from: "config.gradle" //这里可以引用自己定义的后缀为.gradle的文件 ,可以将所有的配置信息提取到自...

2019-10-08 14:57:22 218 1

原创 路由框架ARouter的初步使用

ARouter的使用添加依赖和配置android { defaultConfig { ... javaCompileOptions { annotationProcessorOptions { arguments = [ moduleName : project.getName() ] } } }}d...

2019-09-30 14:55:18 237

原创 Fragment与Activity通信

Fragment与Activity通信Fragment可调用getActivity()方法获取它所在的ActivityActivity可调用FragmentManager的findFragmentById()或findFragmentByTag()方法获取FragmentActivity ——> Fragment: 在Activity中创建Bundle数据包,并调用Fragment的...

2019-09-27 14:54:40 118 1

原创 关于Windows/Mac下Android Studio 快捷键汇总

AS快捷键功能描述Windows / Mac提示错误解决方案alt + enter / option + enterAS配置界面control+alt+S / command + ,工程项目配置界面Control+Alt+Shift+S / command + ;快速构成代码alt + insert / command + N代...

2019-09-26 15:20:22 116

原创 关于ListView左滑菜单SwipeMenuLayoutde使用

今天在网上看了一个很好用的左滑菜单实现方法,前来分享。效果图:具体实现:/** * 【Item侧滑删除菜单】 * 继承自ViewGroup,实现滑动出现删除等选项的效果, *思路:跟随手势将item向左滑动, * 在onMeasure时 将第一个Item设为屏幕宽度 *【解决屏幕上多个侧滑删除菜单】:内设一个类静态View类型变量ViewCache,存储的是当前正处于右滑...

2019-09-23 11:02:06 652 1

原创 Android实现向右滑动关闭界面

Activity 向右滑动,滑动超过屏幕的一半,就关闭,否则,恢复原来的状态。解决了滑动冲突。(ViewPager/ListView/RecyclerView)1.配置透明主题要想 Activity 滑出屏幕后不遮挡下层 Activity ,需设置透明主题<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBa...

2019-09-09 10:53:04 1490 1

原创 Listview中的checkbox实现全选、反选、删除等功能

1.布局效果:2.对应Acivity代码实现:import android.content.Context; import android.view.View; importandroid.view.ViewGroup; import android.widget.BaseAdapter; importandroid.widget.CheckBox; import android.wi...

2019-09-06 15:48:11 365 1

原创 ListView中包含EditText数据混乱问题解决

ListView列表下,每个Item中都有个Editext,在任意一个Item下编辑内容,快速滑动列表,会出现数据错乱问题。解决方法如下:public class MyAdapters extends BaseAdapter {private Context context;// private String[] str;private List list;public MyAd...

2019-09-05 16:47:18 527 1

原创 Kotlin中使用Room数据库

最近在kotlin环境下,写了一个room数据库的demo,各种情况跑了一下,在此总结一下。涉及情况:增、删、改、查、排序1、环境搭建1.1、Android Studio下,新建一个kotlin项目,1.2、去app的build.gradle中进行一些配置顶部增加apply plugin: 'kotlin-kapt'然后defaultConfig {…javaCompi...

2019-09-04 15:55:05 1286 1

原创 Android Stuido 关于无线调试步骤

Android Studio无线调试Android Studio 编译调试App时,需要连接数据线,完全限制的手机的自由,时时都得备着数据线,还得保证数据线接触是正常,我就遇到过数据线连接异常导致编译不了烦恼(当时的心情…你懂的)。今天尝试用Android Studio无线调试手机,大大解决各种不服,缺点就是反应可能慢点,无线吗!可接受范围,特来分享:1. 第一:手机与电脑必须在同一局域网之内...

2019-09-03 22:11:26 120 1

java基础.xmind

java基础.xmind

2021-09-29

WebSocket客户端测试工具 v4.20免费版.rar

WebSocket客户端测试工具 v4.20免费版

2021-02-18

空空如也

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

TA关注的人

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