自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 多线程(五)---线程的Yield方法

它是一个静态方法,表示当前线程让出CPU的执行权,让出去之后,会依旧和其他线程去争夺 CPU的执行权如果有多个线程,那么多个线程继续抢夺CPU的执行权public class TheadDemo08 { public static void main(String[] args) { YieldThread t1 = new YieldThread(); YieldThread t2 = new YieldThread(); t1.setName("哥哥"); t2..

2020-10-31 15:27:22 273

原创 多线程(四)----继承Thread和实现Runnable的区别

1. 来自于Java当中继承和实现的设计的区别, 继承是单继承,实现可以多实现当某个类需要升级为线程类的时候,如果这个类已经存在了继承的父类,那么该类不能够继承Thread类,这是继承的缺陷,但是我们可以实现Runnable接口,所以方式二比方式一更加灵活2. 继承Thread的好处在于可以直接访问父类Thread的API。实现Runnable的方式不能够直接调用Thread类的API,但是Thread类提供了一个方法:static Thread currentThread() 返回对当前正在执行

2020-10-31 15:03:47 1067

原创 多线程(三)----线程的启动方式(二)

方式二----实现Runnable接口的方式开启1.步骤定义类实现Runnable接口重写run方法创建线程对象,并且将我们自己编写的Runnable接口的实现类传入启动线程2.代码示例:// 1. 定义类实现Runnable接口class MyRunnable implements Runnable { private int tickets = 100; // 2.重写run方法 public void run() { // 这里的代

2020-10-31 14:51:55 158

原创 多线程(二)----线程的启动方式(一)

一.方式一-----继承Thread类的方式开启1.步骤:1)定义类继承Thread类2)重写Thread类中的run方法,用来指定我们线程的任务3)创建线程对象4)调用线程的start方法,启动线程2.注意点:1.启动线程不是调用run方法,如果调用的是run方法,那么就和普通对象调方法是一样的,没有区别启动线程调用的start方法2.线程不可以多次启动3.代码示例定义线程// 方式一: 继承Thread类的方式开启// 1.定义类继承Thread类class MyThre

2020-10-31 14:49:12 165

原创 多线程(一)---进程和线程的概念

一.进程和线程1)概念区别进程:正在进行的程序【代码块】,操作系统会为正在运行的程序分配内存空间线程:本质就是一条执行路径,可以理解为是进程的子任务【迅雷、百度网盘多资源下载】, 一个进程可以只包含一个线程,也可以包含多个线程2)问题:默认java虚拟机进程开辟了几条线程?答:至少有两条线程,主线程[main方法],垃圾回收线程[GC守护线程]三.多进程和多线程1)概念区别多进程:在操作系统的层面上,同时运行多个程序多线程:在同一进程的层面上,同时运行多条程序2)开启多线程和开启多进程的

2020-10-31 14:41:46 170

原创 mysql---如何获取有性能问题的sql

一.通过用户返馈获取存在性能问题的sql二.通过慢查日志获取存在性能问题的sql三.实时获取存在性能问题的sql

2020-10-22 20:12:28 82

原创 mysql---如何为innodb选择主键

一.主键应该尽可能的小因为在innodb表中,每一个非主键索引的叶子节点上都会存储主键列的信息, 所以如果主键索引太大,会导致其他非主键索引页变大, 降低索引的查询效率二.主键应该是顺序增长的innodb的逻辑顺序和主键索引的顺序是相同的,即聚簇索引, 如果主键索引是自动增长的,那这样插入数据 也会顺序插入,避免了随机IO的产生,提交插入效率三.innodb的主键和业务主键可以不同当业务主键满足不了前面两点,可以再另外创建一个主键索引,业务主键用唯一索引来表示即可...

2020-10-22 19:54:59 205

原创 mysql---mysql中如何存储日期数据

一.DateTime类型1,特点1)以YYYY-MM-DD HH:MM:SS[.fraction]格式存储日期时间,在mysql5.6前可以只能存储到秒,在5.6后能存储到微秒2)datetime类型与时区无关,占用8个字节的存储空间3)时间范围公元1000-01-01 00:00:00到9999-12-31 23:59:59,存储的时间范围非常广二.timestamp类型1.特点:1)存储了由格林尼治时间1970年1月1日到当前时间的秒数,即时间戳, 以YYYY-MM-DD HH:MM:SS

2020-10-22 19:44:48 5026

原创 mysql---mysql中的整数和字符串类型

一.为表中的字段选择合适的数据类型的原则当一个列可以选择多种数据类型时,应该优先考虑数字类型,其次是日期或者二进制类型,最后是字符类型,对于相同级别的数据类型,应该优先选择占用空间小的数据类型理由:1)在对数据进行比较时,字符类型处理与当前所使用的排序规则是相关的, 而数字和二进制是按照二进制大小来进行的,同样的数据,字符类型比数字处理慢2)在数据库中,数据处理 是以页为单位的,每页的大小是恒定的,在innodb中,每页的大小是16k,数据占用空间越小,页中能容纳的数据个数就越多,减少磁盘IO,有利

2020-10-22 19:10:30 601

原创 Redis--SpringCache(二)带有参数的方法缓存

一.带有参数的方法缓存在@Cacheable的key属性中通过#参数名可以获取到方法参数。key中内容Spring EL,既然是表达式字符串要用单引号,没有被单引号包含的内容都表示变量。注意:基本上当方法有参数时,设置key的时候需要添加上参数条件。因为参数不一样,方法的返回值也可以不一样了。 @Override // Spring EL // 字符串使用单引号 // #+方法参数名称:可以调用方法参数 @Cacheable(key = "'selectById'+#

2020-10-19 20:06:00 551

原创 Redis---SpringCache(一)无参数使用

一.简介Spring Cache 是Spring - context-xxx.jar中提供的功能,可以结合EHCache,Redis等缓存工具使用。给用户提供非常方便的缓存处理,缓存基本判断等操作,可以直接使用注解实现。二.开启方式在包含了Spring - context-xxx.jar的Spring Boot项目中,在启动类中添加@EnableCaching注解,即可开启缓存功能。默认Spring Cache是不开启。三.SpringCache的优点1.1正常情况下使用Redis缓存工具时代码流

2020-10-19 19:30:39 614

原创 用代码生成器生成mybaitsPlus的代码

一. pom.xml<?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.

2020-10-13 15:11:58 129

原创 三步搞定maven中的mybatis Generator代码生成器

1.配置pom.xml<?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

2020-10-11 16:05:34 128

原创 SpringSecurity(十七)------CSRF

一.引入从刚开始学习Spring Security时,在配置类中一直存在这样一行代码:http.csrf().disable();如果没有这行代码导致用户无法被认证。这行代码的含义是:关闭csrf防护。二.什么是CSRFCSRF即跨站请求攻击。简单的说,是攻击者通过一些技术手段欺骗用户的浏览器去访问一个自己以前认证过的站点并运行一些操作(如发邮件,发消息,甚至财产操作(如转账和购买商品))。因为浏览器之前认证过,所以被访问的站点会绝点是这是真正的用户操作而去运行.这就利用了web中用户身份认证验证

2020-10-10 21:10:52 1554 1

原创 SpringSecurity(十六)---退出登录

一.实现方法1)最简洁的实现方法用户只需要向Spring Security项目中发送/logout退出请求即可。<a href="/logout">退出登录</a>2)自定义退出参数和退出成功以后的页面为了实现更好的效果,通常添加退出的配置。默认的退出url为/logout,退出成功后跳转到/login?logout如果不希望使用默认值,可以通过下面的方法进行修改。http.logout() .logoutUrl("/logout")

2020-10-10 20:44:55 164

原创 SpringSecurity(十五)-----Thymeleaf中Spring Security的使用

一.使用理由Spring Security可以在一些视图技术中进行控制显示效果。例如:JSP或Thymeleaf。在非前后端分离且使用Spring Boot的项目中多使用Thymeleaf作为视图展示技术。二.实现步骤1)添加依赖Thymeleaf对Spring Security的支持都放在thymeleaf-extras-springsecurityX中,目前最新版本为5。所以需要在项目中添加此jar包的依赖和thymeleaf的依赖。后面的X要根据所有的springboot版本来决定 &

2020-10-10 20:30:45 278

原创 SpringSecurity(十四)---RememberMe功能实现

一.使用理由Spring Security 中Remember Me为“记住我”功能,用户只需要在登录时添加remember-me复选框,取值为true。Spring Security会自动把用户信息存储到数据源中,以后就可以不登录进行访问。二.实现步骤1.添加依赖(jdbc和mysql)Spring Security实现Remember Me 功能时底层实现依赖Spring-JDBC,所以需要添加jdbc的依赖,如果使用的是mybatis框架,只要导入mybatis的启动器即可,同时还需添加mys

2020-10-10 20:01:07 298

原创 SpringSecurity(十三)----基于注解的访问控制

一.开启方式在Spring Security中提供了一些访问控制的注解。这些注解都是默认是都不可用的,需要在启动类中添加@EnableGlobalMethodSecurity注解进行开启。如果不开启就使用注解会报500二.常用注解1.@Secured@Secured是专门用于判断是否具有角色的。能写在方法或类上。@Secured参数要以ROLE_开头。1.1实现步骤1)开启注解在启动类(也可以在配置类等能够扫描的类上)上添加@EnableGlobalMethodSecurity(secur

2020-10-10 19:39:19 204

原创 SpringSecurity(十二)----基于表达式的访问控制

1.access()方法使用1)使用理由之前学习的登录用户权限判断实际上底层实现都是调用access(表达式),我们可以通过access()实现和hasAuthority,hasRole等的权限控制完成相同的功能。 public ExpressionUrlAuthorizationConfigurer<H>.ExpressionInterceptUrlRegistry hasAuthority(String authority) { return this.acce

2020-10-10 19:20:58 265

原创 SpringSecurity(十一)----自定义403处理方案

一.自定义403处理方案1.使用理由使用Spring Security时经常会看见403(无权限),默认情况下显示的效果如下:而在实际项目中可能都是一个异步请求,显示上述效果对于用户就不是特别友好了。Spring Security支持自定义权限受限时的页面2.使用步骤1)新建类,并让它实现AccessDeniedHandler@Componentpublic class MyAccessDeniedHandler implements AccessDeniedHandler {

2020-10-10 17:34:37 784

skywalking_springboot.jar

skywalking spring jar包,随着分布式系统和微服务架构的出现,一次用户的请求会经过多个系统,不同服务之间的调用关系十分 复杂,任何一个系统出错都可能影响整个请求的处理结果。以往的监控系统往往只能知道单个系统的健 康状况、一次请求的成功失败,无法快速定位失败的根本原因。

2020-08-04

空空如也

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

TA关注的人

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