自定义博客皮肤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)
  • 收藏
  • 关注

原创 synchronized的虚假唤醒

(6) 然而可能出现这样的情况:当D号线程准备获得队列的锁,去获取队列中的元素时,此时B号线程刚好执行完之前的元素操作,返回再去请求队列中的元素,B线程便获得队列的锁,检查到num > 0,就获取到了C号线程刚刚入队的元素,然后释放队列锁。(7) 等到D线程获得队列锁,判断发现num == 0,B线程“偷走了”这个元素,所以对于D线程而言,这次唤醒就是“虚假”的,它需要再次等待num > 0。(5) 处于等待状态的D线程接收到C线程的唤醒信号,便准备解除阻塞状态,执行接下来的任务(获取队列中的元素)。

2024-01-10 17:58:24 347

原创 graylog lookup table使用

步骤lookup table就是对上传日志的指定字段通过映射关系给日志增加一个字段1. 访问lookup table页面2.创建一个适配器创建一个csv文件配置适配器3.创建一个Caches4.创建lookup table5. 使用lookup table6.结果...

2022-11-10 15:02:19 790 1

原创 graylog的API中增加自定义接口

来源https://github.com/Graylog2/graylog2-server/blob/master/graylog2-server/src/main/java/org/graylog2/rest/resources/messages/MessageResource.java代码实现代码package org.graylog2.plugin.custom.resource;import com.codahale.metrics.annotation.Timed;import i

2022-04-22 15:48:39 1002

原创 简单的弹窗-自动消失

弹窗效果:创建一个弹窗组件(javascript)pageTanChuang.js// 上面按钮点击事件function func(){ // 创建一个div var layer=document.createElement("div");// 设置div的id值 layer.id="layer"; /* 创建div的样式,宽200px,高80px,下面的是css样式居中, * css样式居中具体了解链接:https://blog.csdn.net

2022-03-29 15:00:21 1731 1

原创 SpringSts中整合Thymeleaf到SpringMVC

SpringSts中整合Thymeleaf到SpringMVC1. 当Tomcat启动时通过OnStart方法首先通过getRootConfigClasses()方法加载自定义的Root WebApplicationContext容器,其次通过getServletConfigClasses()方法再加载其他相关配置(SpringMVC配置)2. 因此创建一个AppRootConfig 类用于声明ITemplateResolver模板解析器接口的Bean对象和SpringTemplateEngine模板引

2021-09-02 13:25:15 209

原创 CMD查看进程并关闭进程

举例当时用SpringBoot时在启动服务器时出现端口号被占用,服务启动不起来查看进程:netstat -ano | findstr 端口号关闭进程:taskkill /pid 端口号的LISTENING值

2021-08-30 15:49:27 783

原创 SpringBoot配置文件

在springboot项目中,设置debug=true,在控制台查看springboot自动配置的服务日志#开启热部署 devtools.restart.enabled= true#开发阶段关闭Thymeleaf缓存机制,清除缓存,实现热部署,修改了html后不用重启,刷新页面就能看到效果 如果不行在idea中,ctrl+f9,,会build一次,再刷新浏览器就可以了 spring.thymeleaf.cache= false#设置服务端口号 serve..

2021-08-26 19:21:15 122

原创 org.slf4j.Logger打印日志的使用(需要的拿走)

org.slf4j.Logger打印并输出日志log4j定义了8个级别的log优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。log4j默认的优先级为ERROR。ALL 最低等级的,打开所有日志记录DEBUG 主要用于开发过程中打印一些运行信息。INFO 突出强调应用程序的运行过程中打印一些你感兴趣的或者重要的信息,不能滥用,避免打印过多的日志。WARN 表明会出现潜在错误的情形,有些信息不是错误信息,给程序员的一些提示。ERROR

2021-08-24 20:36:43 12154 1

原创 Mybatis的配置使用在SpringFramework中(需要的拿走)

需要的拿走这套mybatis配置可以承受大量用户访问而不出现卡顿package com.xin.config;import javax.sql.DataSource;import org.apache.ibatis.logging.stdout.StdOutImpl;import org.apache.ibatis.session.Configuration;import org.apache.ibatis.session.SqlSessionFactory;import org.myba

2021-08-24 16:42:36 468 1

原创 Redis连接池配置使用在SpringFramework中

需要的拿走这个redis连接池可以承受50万人的访问,当我们需要在SpringFramework中需要,可以把它交给容器管理,通过给RedisTemplate<String, Object>自动注入就可以访问redis了package com.xin.config;import java.time.Duration;import org.springframework.context.annotation.Bean;import org.springframework.contex

2021-08-24 16:29:06 477

原创 cookie和session和JSESSIONID

cookie和session的区别:cookie存放在客户端,session存放在服务器端cookie不安全因为可以通过分析存放在本地的cookiesession一定时间内保存在服务器上,当访问变多,占用服务器的资源性能,为了减轻资源性能最好使用cookie单个cookie保存数据是有限的一半不超过4k,很多浏览器都限制一个站点最多保存20个cookie,而session保存在服务器端没有数量的限制,也可以保存更复杂的类型cookie的生命周期是积累的,而session的生命周期是间隔的由于H

2021-08-24 08:58:33 1769

原创 CGlib和JDK动态代理

CGlib和JDK动态代理JDk动态代理基于接口实现package com.xin.demo.proxy;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;import java.lang.reflect.Proxy;import java.util.Arrays;//代理模式:基于JDK反射机制:(Poxy类+InvocationHandler接口)//通过接口实现:目标对象要实现接口

2021-08-22 16:32:48 401

原创 Tomcat启动时加载Spring容器的过程

Tomcat(Servlet3.0规范的web容器)启动时,会查找ServletContainerInitializer接口实现类,这个实现类SpringServletContainerInitializer由Spring提供,然后Spring提供的实现类会加载WebApplicationInitializer这个接口的所有实现类通过*onStartup(ServletContext servletContext)*这个方法WebApplicationInitializer这个接口的实现类结构图自定义

2021-08-22 16:22:36 775

原创 SpringAOP纯POJO切面方式实现(接口+XML)

xml自动代理和手动代理的使用org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreatororg.springframework.aop.framework.ProxyFactoryBean小实例AOP就是在程序横向执行的过程中给程序纵向插入附加的功能,但不不会影响业务的执行,也就是在业务的两边加入需要的通知,可以是日志模块,权限模块,事务模块。两个通知类:用于对数据访问层方法执行的通知package com.xin.a

2021-08-22 15:58:43 439

原创 AspectJ注解驱动实现SpringAOP

springAOPAOP (Aspect Orient Programming)面向切面编程, 是一种编程思想,是面向对象编程(OOP)的一种补充,在不影响业务逻辑层和数据访问层的情况下给他们包装了一层服务(可以使日志,事务,权限等)AOP通过动态代理实现:基于接口的JDK Proxy实现和基于父类的CGLIB的实现AOP的注解方式使用注解案例的包的层级结构图首先我们在com包创建一个Config配置类主要用于加载需要的Bean对象package com;import org.spri

2021-08-21 16:19:30 279

原创 SpringMVC的基本操作

SpringMVC的基本操作项目结构com.xin.configAppRootConfig.javapackage com.xin.config;import org.springframework.context.annotation.ComponentScan;import org.springframework.context.annotation.ComponentScan.Filter;import org.springframework.context.annotation.C

2021-08-20 21:58:48 344

原创 反射的应用

import com.alibaba.fastjson.JSONArray;实体类UserIPAddresspublic class UserIPAddress { private int id; public int getId() { return id; } public void setId(int id) { this.id = id; } private String danWei; //单位 private String xingMing; //姓名 private

2021-08-04 18:10:05 221

原创 字节流,字符流,Properties,序列化,反序列化

学习目标:区分字节和字符文件的一般方式通过文本文档的方式打开如果是乱码那就是字节文件,如果可以读懂就是字符文件1.字节流FileInputStreamFileOutputStreamBufferedInputStreamBufferedOutPutStream2.字符流FileWriterFileReaderBufferedFileWriterBufferedFileReader学习内容:FileInputStream(“文件路径”)字节输入流字节输入流将指定文件以字节的形式从

2021-05-10 16:53:21 293

原创 反射修改字符串内容

反射修改字符串内容不同的JDK版本使用不同的数组代码如下:public class de05 { public static void main(String[] args) throws Exception { String ss="111111"; Class reflect=ss.getClass(); Field f=reflect.getDeclaredField("value"); f.setAccessible(true); char[] b=(char[])

2021-01-24 15:50:46 1111 2

原创 关于反射的基本使用方法

关于反射什么是反射?反射是Java程序开发语言的特征之一,它允许运行中的java程序对自身进行检查,并能直接操作程序的内部属性和方法一.获取Class对象获取Class对象就是让Class对象获得一个类内部属性和方法,有三种方式方式一通过Object类的getClass()获取反射对象Book book = new Book();Class bookClass = book.getClass();System.out.println("完全限定名:" + bookClass.toStri

2021-01-24 15:38:47 492

原创 计算机的常用技巧

Ctrl+C复制Ctrl+V粘贴Ctrl+Z撤销Ctrl+A全选Ctrl+S保存Ctrl+X剪切

2021-01-24 11:00:17 291

原创 Java集合中sort()方法的理解

Java集合中的sort()方法的理解== 关于集合中的sort(Comparator<? super E > c)这个方法的理解,它的参数是一个实现Comparator接口的实例对象,因此实例对象的类必须实现Comparator这个接口并且重写compare(E o1, E o2)这个比较方法,因为sort这个方法就是根据实现类中的compare(E o1, E o2)这个方法进行比较排序的,当我们给集合对象存元素时,实际上元素被保存到elementData这个数组中, 我们跟随源码最终可以

2021-01-20 19:14:23 1491

原创 Java字符串常用的方法

String字符串常用的方法1.charAt()String s="abcde"; char c=s.charAt(1);//获取字符串下标为1的字符 System.out.println(c);//b2.compareTo()String s1="abcde"; int a=s.compareTo(s1);//比较两个字符串的大小(根据ASCLL) System.out.println(a);//结果:0(0是相等,-1小于,1大于)3.toUpperCase()和toLow

2021-01-19 19:30:31 662

原创 Java中Arrays.sort()自定义数组的排序

Arrays.sort()方法参数为自定义对象数组时的使用简述首先Comparable< T t >是一个接口其中有一个抽象方法compareTo,当sort方法参数传入自定义对象数组时,我们跟随源码可以看到最终是以Comparable< T t >这个接口关联到参数数组中对象所在的类中的compareTo方法进行排序的,因此参数对象所对应的类必须实现Comparable< T t >接口,并且重写compareTo方法规定排序策略。举例说明1. 首先创建一

2021-01-16 16:53:25 1778

空空如也

空空如也

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

TA关注的人

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