自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (3)
  • 收藏
  • 关注

原创 SpringBoot2 + SpringSecurity + oauth2 搭建用户登录授权框架

前言以前搭建过一个通过SpringSercurity去实现oauth2协议的简单框架,但是整体过于简单了,很多细节的实施都有许多的问题。另一方面呢,查看了网上许多关于这方面的技术文档,发现不是技术老旧,就是抄袭,还有的只是简单的去实现,没有从实际的需求去搭建。这一次决定抽出时间好好把这部分全部解决掉。先简单介绍一下oauth2协议:客户端与服务器之间,存在一个授权层。客户端不能直接访问服务器...

2019-07-23 18:20:00 6890

原创 《高性能MySQL》摘选

MySQL 优化技巧数据类型优化尽可能使用存储数据的最小数据类型选择简单的数据类型(整型比字符操作代价更低)避免NULL值,查询包含NULL的列,MySQL难以优化,使得索引、索引统计更复杂。整数类型有两种类型的数字:整数和实数。如果存储整数,可以使用这几种整数类型:TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT。 分别使用 8,6, 24, 3...

2019-05-28 10:03:52 1702 13

原创 SpringBoot2 搭建 Shiro环境 实现权限控制登录

本文搭建环境使用Springboot-2.1.3版本,数据库使用mysql,持久层使用jpa简单实现了用户权限登录的功能,实现的比较简洁,实际项目中根据需求进行修改1. Pom文件首先导入需要的包<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4...

2019-03-11 17:45:25 2606

原创 垃圾收集器参数总结使用

垃圾收集器参数总结使用-XX:+<option> 启用选项-XX:-<option> 不启用选项-XX:<option>=<number> -XX:<option>=<string> 参数 描述 使用收集器类型 -XX:UseSerialGC 虚拟机运行在Client模式下的默认值,打开此开关后,使用Serial+

2018-05-09 15:42:22 253

原创 SpringBoot+Spring Security Oauth2实现客户端授权

框架使用SpringBoot + Spring Security Oauth2 主要完成了客户端授权 可以通过mysql数据库读取当前客户端表信息进行验证,token存储在数据库中1.引入依赖oauth2 依赖于spring security,需要引入spring, mysql,redis, mybatis<dependencies> &am

2018-02-23 14:18:26 46427 20

原创 Java中String对象存储情况

经常能在面试题中看到这个问题,而String的存储情况又比较多,因此罗列出来, 记录一下,方便学习第一种情况 String str1 = "abc"; String str2 = "abc"; System.out.println(str1 == str2);结果为 true程序只创建了一个"abc"字符串对象,存放在常量池,str1创建一个 abc放...

2020-04-13 17:55:52 291

原创 Redis深度历险 读书笔记

Redis基础数据结构String(字符串)、 list(列表)、 hash(字典)、set(集合)、zset(有序集合)StringRedis的字符串是动态字符串,可以进行修改,内部结构实现类似于ArrayList,采用预分配冗余空间 的方式减少内存的频繁分配。字符串的最大长度为512MB添加一个字符串 set name value获取一个字符串 get name判断是否存在 ex...

2019-12-25 11:18:45 246

原创 Windows环境Rabbit集群搭建

单服务器的集群搭建 仅适用于测试,生产一定要多个服务器。文章参考 https://blog.csdn.net/NerverSimply/article/details/847294951.首先将rabbitMQ安装目录 /sbin 目录的全部.bat文件复制出一份,作为节点,每个文件修改一下名字。2. 首先修改rabbitmq-env-node1.bat文件,该文件主要用于配置环境变量1...

2019-07-31 14:59:44 370

原创 jenkins+springboot+svn+maven 自动化项目部署

1.下载依赖sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo2.导入秘钥sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key3.安装yum install jenk...

2019-06-18 17:37:32 292

原创 《Spring实战》1.Spring介绍

Spring体系模块 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Spring 上下文...

2018-09-16 16:28:39 238

原创 《Java多线程变成核心技术》总结

第一章 Java多线程技能 这一章呢,作者没有写到核心知识,知识简单说明一下线程概念,多线程实现方式(继承Thread,实现Runnable)、共享数据的不安全性、停止线程、线程的优先级一些方法的使用如下:currentThread() 返回当前代码被哪个线程调用的信息。 isAlive()判断当前线程是否处于活跃状态。 sleep()指定好描述让当前执行线程休眠。(不会放弃锁)...

2018-09-14 16:24:27 213

转载 volatile原理

文章引用:http://cmsblogs.com/?p=2092本文只是抄下来,方便自己学习和理解。synchronized是一个重量级的锁,虽然JVM对它做了很多优化,而下面介绍的volatile则是轻量级的synchronized。如果一个变量使用volatile,则它比使用synchronized的成本更加低,因为它不会引起线程上下文的切换和调度。Java语言规范对volatile的...

2018-09-13 17:31:08 98

转载 深入理解Java虚拟机 (4)—— 类文件结构

概述: Class文件结构是了解虚拟机的重要基础之一,如果想深入的了解虚拟机,Class文件结构是不能不了解的。Class文件是一组以8位字节为基础单位的二进制流,各项数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,如果是超过8位字节以上空间的数据项,则会按照高位在前的方式(Big-Endian)分割成若干个8位字节进行存储。Class文件中包含了Jav...

2018-09-13 16:49:37 145

原创 深入理解Java虚拟机 (5)—— JVM类加载器

类加载器的作用    通过一个类的全限定名来获取此类的二进制字节流,将一个类加载到虚拟机内存中。类加载器类型    1.启动类加载器(Bootstrap ClassLoader):该类加载器负责将存放在<JAVA_HOME>\lib目录中的,或者被                       -Xbootclasspath参数所指定的路径中,并且是虚拟机识别的(名字不符合不会被加载)的...

2018-06-12 14:51:46 141

原创 深入理解Java虚拟机 (4)—— 虚拟机类加载

概述    虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、准备、解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。    类从被加载到虚拟机内存中开始,到卸载出内存为止,他的生个生命周期包括:加载、验证、准备、解析、初始化、使用、卸载7个阶段。其中验证、准备、解析部分统称为连接。    加载、验证、准备、初始化、卸载,这5个阶段顺序是确定的,但...

2018-06-08 16:17:03 190

原创 Java8 与 Java7 对象分配内存差异 探索

通过学习“深入理解Java虚拟机”这本书,在书的92页内存分配这一章节遇见了问题。代码 运行在Java7上 ,结果如下 /** * V M 参数 : -XX:+UseSerialGC -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 * -XX:+UseSerialGC 设置使用Serial...

2018-05-10 11:58:03 576 1

原创 深入理解Java虚拟机(3)—— 内存分配与回收策略

1.内存分配与回收策略1.1 对象优先在Eden分配    绝大部分,对象在新生代的Eden区中分配。方Eden区没有足够空间时,虚拟机发起一次MinorGC。    代码演示如下:public class testAllocation { private static final int _1MB = 1024 * 1024; /** * V M 参数 : -XX:...

2018-05-09 17:04:49 152

原创 深入理解Java虚拟机(2)—— 可达性分析算法、引用类型、对象的自我拯救、垃圾收集算法、HotSpot算法实现、垃圾收集器

1. 概述引用计数算法 给对象添加一个引用计数器,每当有一个地方引用它,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。Java不是用该算法判断对象是否存活。可达性分析算法 通过“GC Root”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链相连时,则证...

2018-04-24 11:02:26 697

原创 JVM 学习整理(1)-- java内存区域,对象的创建

java内存区域Java 虚拟机所管理的内存将会包括下几个运行时数据区域:程序计数器        一块较小的内存空间,当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程回复等基础工作都需要依赖这个计数器完成。  2. Java虚拟机栈        生命周期与线程相同。其中描述的是Java方法执行的内...

2018-04-19 17:36:57 207

原创 Java 中Date格式初始化和Calendar使用

使用字符串初始化Date String dateString = “2018-02-23”; Date date= new SimpleDateFormat(“yyyy-MM-dd”).parse(dateString); 使用时间戳初始化 Date date = new Date(时间戳);计算两个日期相差天数 long day = date1.getTime() - date2....

2018-02-23 11:00:24 32292

原创 angular 路由 常用事件

angular 当路由页面加载完毕后执行 指定JS 直接在app.js启用viewContentLoaded 方法即可myApp.run(['$rootScope', '$window', '$location', '$route', function ($rootScope, $window, $location, $route) { $rootScope.$on('$vie...

2017-09-28 14:33:37 929

原创 angularJS 实现移动端 触摸事件Touchstart Touchmove

angular 移动端开发,启用ngTouchstart,ngTouchmove,ngTouchendapp.js引用 .directive("ngTouchstart", function () { return { controller: ["$scope", "$element", function ($scope, $eleme...

2017-09-28 14:27:11 5319 1

原创 angularJS 使HTML解释JS字符串中的标签。

在augularJS中,某一个字符串含有标签,在显示的时候会直接把标签显示出来。1. 首先在app.js中 设置filter('trustHtml', function ($sce) { //解释html标签 return function (input) { return $sce.trustAsHtml(input); }});2. 使用 

2017-09-28 14:12:31 745

原创 angularJS 通过scopeId 获取scope

angularJs 中每一个scope都会有一个自身的iD,可通过本地浏览器console.log打印查看.//通过ID获取Scopefunction getScopeById(id) { var element; $('.ng-scope').each(function(){ var scope = angular.element(this).scope

2017-09-28 11:58:24 1566

RedisDesktopManager 下载0.9.8版本

redisDesktopManager 0.9.8版本,管理redis缓存。已编译过,可以正常使用

2018-12-18

Xftp6.0beta最新

Xftp6.0beta最新Xftp6.0beta最新Xftp6.0beta最新Xftp6.0beta最新

2018-04-24

Discuz论坛系统64位安装包

Discuz论坛系统安装包Discuz论坛系统安装包Discuz论坛系统安装包Discuz论坛系统安装包Discuz论坛系统安装包Discuz论坛系统安装包Discuz论坛系统安装包

2017-09-13

空空如也

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

TA关注的人

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