- 博客(49)
- 资源 (40)
- 问答 (2)
- 收藏
- 关注
原创 【springboot源码分析】1.SpringApplication实例化
一般springboot(版本2.0.6)项目启动代码package com.xll;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic cl...
2019-10-12 15:47:52 303
原创 【JDK1.8-ConcurrentHashMap】tableSizeFor(int c)方法理解
JDK1.8对ConcurrentHashMap进行了一些改动,因此照着源码和网上博客看看究竟有哪些改动?还没看一小会儿,就发现了一个方法比较硬咬不动,因此研究了一下,并记录下对该方法的理解。 ConcurrentHashMap有一...
2019-04-24 11:18:39 1206 6
原创 【springboot源码分析】4.Bean的感知类执行(Aware)
springboot启动最核心的方法是AstractApplicationContext中的refresh方法,它贯穿Bean的整个生命周期// Prepare the bean factory for use in this context.prepareBeanFactory(beanFactory);// Allows post-processing of the bean fact...
2019-10-18 17:23:05 317
原创 【springboot源码分析】3.BeanDefinition注册
springboot对BeanDefinition进行注册发生在对工厂后置处理器调用中,调用链是run(…)->refreshContext(…)->refresh()->invokeBeanFactoryPostProcessors(beanFactory),refresh方法执行是springboot启动最核心的部分public void refresh() throw...
2019-10-17 10:05:52 239
原创 【springboot源码分析】2.加载sources类BeanDefinition
在上一篇【springboot源码分析】SpringApplication实例化main函数里面有这么一行代码 SpringApplication.run(RpcClientApplication.class, args)这篇文章的主角sources就是RpcClientApplication.class,之所以是sources是因为,springboot可以多个sources一起启动,也...
2019-10-14 15:34:35 371
原创 【数据结构】java实现红黑树
红黑树五个性质(可以参考维基百科)节点是红色或者黑色根节点是黑色叶子节点颜色为黑色(不是NULL节点,是自己构造的黑色叶子结点)红色节点的孩子节点是黑色从某个节点到其叶子结点的黑色节点个数相同红黑树的插入和删除操作就是为了保证这五个性质,特别是性质4、5。因此,为了保证插入不破坏性质5,插入时节点颜色默认为红色红黑树节点数据结构package com.xll.tree.re...
2019-10-12 10:33:42 138
原创 【数据结构】java跳跃表实现
有关跳跃表的概念,自行搜索,谢谢跳跃表节点对象package com.xll.other;/** * @Author: xialonglei469 * @Date: 2019-10-10 13:43 * @Version 1.0 * * 跳跃表节点 */public class SkipListNode { Integer data; /** 指向下一...
2019-10-11 18:08:36 180
原创 【java并发】AQS中acquire方法解析
AQS,全名AbstractQueuedSynchronizer(抽象队列同步器),它是CLH的变种。它与CHL不同之处在于: CLH是一种公平锁,它是通过自旋同步队列中节点的前驱结点状态,判断同步队列中的节点是否能够进入临界区;A...
2019-09-24 10:43:00 3829 3
原创 【Springboot】Xss过滤
声明:大部分代码我都是重别人博客里面复制过来的,只是稍稍的修改了一下,能够支持对文件的过滤,话不多说了,直接贴代码了!配置文件(application.properties)# 如果不想进行Xss过滤,可以注释掉或者设置为falsecommon.xss-filter-open=true过滤配置类(XssFilterConfig.java)@Configuration@Cond...
2019-07-17 15:15:13 1050
原创 RBAC从零开始--用户管理之添加
需要的js插件bootstrap-select.min.jsbootstrap-select.min.cssjquery-ui.min.jsjquery-ui.min.csstoastr.min.jstoastr.min.cssjquery-ui.min.js/css下载地址 toastr.min.js/css下载地址user-mgmt.jsp......<!-- 添加弹出层 moda
2017-12-10 18:47:52 1062
原创 JAVA基础--关于Socket编程中的I/O阻塞
Server.javapublic class Server { public static void main(String[] args) { new Server().start(); } private void start() { ServerSocket ss = null; try { ss
2017-12-03 17:13:57 375
原创 RBAC从零开始--用户管理之显示
index.jsp......<c:if test="${requestScope.page == 10}"> <%@ include file="/WEB-INF/jsp/user-mgmt.jsp"%></c:if>......需要的js插件bootstrap-table.jsbootstrap-table-zh-CN.js //汉化插件bootstrap-table.js/
2017-12-02 21:38:56 1190
原创 RBAC从零开始--登录及登录拦截器
并没有正真的做一个登录界面,只是做一个模拟登录的过程,但是对非登录状态访问内容时,对请求进行拦截。在controller包下新建一个类UserController.java在service包下新建一个UserService接口在service->impl包下新建一个UserServiceImpl,实现UserService里面的接口UserController.java@Controller
2017-11-27 16:06:03 1330
原创 RBAC从零开始--首页的编写
首先导入基础的js、css文件,包括如下:bootstrap js/cssjquery js/cssjquery-ui js/csstoastr js/cssbootstrap-table js/cssbootstrap-select js/cssbootstrap-table-zh-CN js首页页面效果图 首页代码<%@ page contentType="text/h
2017-11-03 19:01:48 940
原创 RBAC从零开始--操作日志记录
首先,得利用上篇的工具类代码生成,OperateLogInfoMapper、OperateLogInfo、OperateLogInfoExample、OperateLogInfoMapper.xml还有user表的,放到对应的包下,代码有的没有判空这个不太好,最好自己可以加上非空判断! 设计日志记录注解SystemLog(在annotation包下),控制层的方法要记录操作日志,就需要增加该注解,
2017-11-02 17:05:00 1082
原创 RBAC从零开始--Mybatis表映射实体
映射代码下载解压,配置generatorConfig.xml文件<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dt
2017-11-02 10:26:13 923
原创 RBAC从零开始--文件配置
jdbc-config.propertiesdriverClassName=com.mysql.jdbc.Driverurl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=falseusername=roo
2017-10-30 10:30:54 1115
原创 RBAC从零开始--数据库表设计
RBAC(基于角色的权限访问控制),很明显要有角色表、权限表,当然用户表是不能少的,在加上两张关联表,用户角色表(这里一个用户只对应一个角色,按道理可以整合一张表,在用户表里加上一个角色id),角色权限表。此外,还要设计一张用户操作信息日志表,记录用户的操作信息。用户表 角色表 权限表 用户角色表 角色权限表 操作信息日志表注:所有的数据字段都为非空字段,设有默认值,每个字段都加有注释用户
2017-10-28 21:34:42 8761 2
原创 RBAC从零开始--依赖获取和创建项目结构
所有依赖都在pom.xml文件中配置,下面是项目所需要的全部依赖以及其他配置:<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 h
2017-10-27 15:25:16 1073
原创 RBAC从零开始--安装IntelliJ IDEA和构建项目
IntelliJ IDEA是一款java集成开发环境,之前用的是Eclipse,但是Eclipse对JS支持的不够友好,之后就开始用IntelliJ IDEA下载最新版本的IntelliJ IDEA:IDEA下载地址,下载旗舰版(2017),打开需要注册码:注册码地址,记得修改hosts文件(C盘->Windows->System32->drivers->etc->hosts)安装JDK,省略安装m
2017-10-26 21:52:36 782
原创 RBAC从零开始--Git和Github
在写程序之前,先把所有外围环境以及框架搭建好,之后就可以着重业务代码的编写。关于Git与Github的知识就不在这里多说,感兴趣的可以网上找资料查看。安装Git(版本控制软件,具体介绍自行网上查找),地址:Git下载,安装过程简单下一步就可以,安装完成之后配置环境变量,在系统变量Path添加如下内容(Git安装路径自行更改):D:\codingSoftware\git\Git\cmd;D:\codi
2017-10-20 09:56:09 819
原创 解码HTML Entity
最近看有些网页源码数据如下:服务治理解码所需要的依赖:<dependency> <groupId>commons-codec</groupId> <artifactId>commons-codec</artifactId> <version>1.10</version></dependency>调用的方法:String
2017-10-05 20:58:05 833
原创 Dubbo入门
dubbo结构图: dubbo管理控制台安装(ubuntu)必须使用jdk1.7(其他版本不行),否则报错安装zookeeper(单节点)之后在zookeeper根目录新建两个文件夹mkdir datamkdir logscd zookeeper-3.4.6/confcp zoo_sample.cfg zoo.cfg修改zoo.cfg配置文件内容syncLimit=5# the
2017-09-30 16:21:25 401 2
原创 使用Redis Desktop Manager连接ubuntu虚拟机上的redis-sever
1.下载Redis Desktop Manager 发现输入虚拟机ip不能连接,可以ping通 2.修改redis.conf文件,将bind 127.0.0.1改为bind 0.0.0.0 像下图这样: 3.重新启动虚拟机上的redis-server,连接成功 下面连接成功图:
2016-12-04 01:08:59 2499
原创 jquery取值与赋值
input$('xxx').val()$('xxx').val('yyy')span$('xxx').text()$('xxx').text('yyy')radio<input class='sex-male' name='sex' type='radio' checked="checked" value='1'/>男<input class='sex-female' name='s
2016-09-05 15:47:44 6118
原创 书-时光轴
[深入理解Java虚拟机:JVM高级特性与最佳实践].周志明—始于2016-9-4[深入理解Java虚拟机:JVM高级特性与最佳实践].周志明—终于[进行中]
2016-09-04 23:38:16 407
原创 java设计模式-抽象工厂模式
抽象工厂模式概念 抽象工厂模式属于创建型模式,它提供一个创建一系列相关或者相互依赖对象的接口,而无需指定它们具体的类。抽象工厂模式与工厂模式的区别工厂模式是针对一种产品抽象工厂模式是针对多种产品(至少两种)抽象工厂模式类图抽象工厂模式实现描述:抽象工厂模式一个工厂可以制作男款和女款的衣服,而工厂模式一个工厂只能制作一种款式的衣服public abstract class AbstractCl
2016-09-04 23:30:10 377
原创 java设计模式-模板方法模式
模板方法模式概念 模板方法模式属于行为型模式,它定义一个操作中的算法的骨架,而将一些步骤推迟到子类当中实现。父类抽取并实现的是公共方法,对于可变方法,父类做的只是定义了可变行为的接口,具体实现留给子类去完成,实现对代码的重复利用。模板方法模式类图 这里的templateMethod方法就是公共方法,是所有子类所拥有的公共行为;abstractMethod方法就是可变的行为,是每个子类独特行为,这
2016-08-31 12:20:38 2944 2
原创 java设计模式-工厂模式
工厂模式概念 之前写过简单工厂模式(也称静态工厂模式),但是它不属于23中设计模式之一,并且它也违背了“开闭原则”,因此就有了它的升级版工厂模式,它也是属于创建型模式,维基百科上对它的定义是这样的:工厂方法模式的实质是“定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。”并且它不像简单工厂模式那样,所有对象实例的创建都交给一个大工厂去完成(导致
2016-08-28 18:32:07 477
原创 java设计模式-适配器模式
适配器模式概念 适配器模式是属于设计模式模型中的结构型模式,它的主要作用是将一个类的接口转换成客户希望的另外一个接口,适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式形式类适配器模式对象适配器模式类适配器的结构,它的Adapter会去实现Target接口并且继承需要适配的类Adaptee,通过中间类,也就是Adapter类衔接起来从而实现接口转换,因此叫做类适配
2016-08-25 23:30:42 1122
翻译 HTTP 访问控制(CORS)
跨域请求:请求不属于自己域(domain)下资源。例如,一个来自http://domain-a.com域下的HTML page请求http://domain-b.com域的图片资源。当今,网站中许多页面从别的域下加载像CSS stylesheets, images and scripts资源。 出于安全考虑,浏览器会限制跨域脚本执行请求。例如,XMLHttpRequest遵循同源策略(所谓同源
2016-08-25 15:12:06 3365
原创 TCP/IP 状态转换
客户端 SYN_SENT->ESTABLISHED 服务端 LISTEN->SYN_RCVD->ESTABLISHED 上面是三次握手的状态迁移: 第一握手:客户端发给服务端SYN=1,seqNo=x(代表发送起始字节编号) 第二次握手:服务端接受到SYN=1,seqNo=x知道客户端发起了连接请求;因此回送ACK=1(告诉客户端连接请求接收到),ackNo=x+1(希望接收下一个字节的
2016-08-21 12:01:01 678 2
原创 java设计模式-策略模式
策略模式与观察者模式一样属于行为型模式类别,对于某种功能的实现,根据环境的不同可以用不同的方式实现,这里的每一种实现方式可以对应一种策略;百度百科上讲:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户且独立变化。 策略模式结构: Context:环境类,聚集了策略类,是一对一的关系,并提供策略算法入口 Strategy:抽象策略类,
2016-08-20 14:55:09 300
原创 java设计模式-观察者模式
观察者模式属于设计模式三大类别中的行为型模式,百度百科上说:观察者模式,有时又被称为发布(publish )-订阅(Subscribe)模式、模型-视图(View)模式、源-收听者(Listener)模式或从属者模式。 观察者模式的组成: 抽象主题:它是对所有观察者的聚集,它定义了添加观察者,删除观察者,以及通知所有观察者的接口 具体主题:它是对抽象主题的继承或者实现,它有自己的一个具体的内部
2016-08-18 21:45:36 365
原创 java设计模式-简单工厂模式
设计模式分为三大类,创建型模式、结构型模式、行为型模式,简单工厂模式属于创建型模式,那什么是创建型模式呢?简单的来说就是创建对象,如果从面向对象编程角度思考,从它的名字就能知道含义,在现实的世界工厂是制造东西的地方,那么在编程的世界工厂就是生产“对象”的地方。但简单工厂不属于23种GOF设计模式之一。 简单工厂的概念: 1. 简单工厂模式又称为静态工厂方法模式,称为静态工厂是因为它创建对象的方
2016-08-15 21:36:15 422
原创 linux 远程文件同步(shell)
1.首先安装tcl和expect(先安装tcl,再安装expect,自行百度),sshpass 2.我想把本地文件同步到其他几台机器上,因此,需要知道机器的ip,username,password,我用一个文件来存放这些内容machine_info,内容如下:127.0.0.1 username password192.168.12.12 usename password编写expect she
2016-08-05 14:10:58 1699
原创 Spring+RabbitMq简单例子
依赖<dependency> <groupId>org.springframework.amqp</groupId> <artifactId>spring-rabbit</artifactId> <version>1.5.6.RELEASE</version></dependency>简单配置<?xml version="1.0" encoding="UTF-8" ?><
2016-08-04 14:32:19 1596
原创 springmvc+hibernate泛型抽取基础Dao与Service
利用泛型抽象出来的dao和service,一开根据网上方法一直想获取泛型T,后来发现是不可行的,需要传递你的pojo.class类package com.xll.dao;import java.util.List;public interface BasicDao<T> { public abstract void save(T t); public abstract
2016-07-10 18:22:35 2681 2
dubbo_schema
2017-10-05
dubbo监控中心
2017-09-25
mybatis_plus easycode
2020-11-04
Advanced_Design_and_Implementation_of_Virtual_Machines(英文版).7z
2019-09-26
The Garbage Collection Handbook(垃圾回收器手册).7z
2019-09-26
mybatis 多个interceptor 为什么不会被覆盖?
2019-07-17
为什么java metaspace空间,在进行gc的时候会增长,而不是下降
2018-10-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人