![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 57
天才小熊猫12138584
这个作者很懒,什么都没留下…
展开
-
JVM虚拟机之类的加载器以及类的加载过程
类加载器子系统作用类加载器子系统负责从文件系统中或者网络中加Class文件,class文件在文件开头有特殊的文件标识,ClassLoader 只负责 class文件的加载,至于它是否可以运行,则有 Execution 执行引擎来决定。加载的类信息存放于一块成为方法去的内存空间,除了类的信息, 方法区中还会存放运行时常量池信息,可能还包括字符串字面量和数字常量, (这部分常量信息是Class...原创 2020-05-06 08:43:38 · 240 阅读 · 0 评论 -
ssm框架整合pageHelper插件
JAVA项目使用pageHelper作分页maven 中 引入pageHelper依赖<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <versi...原创 2019-06-24 19:12:43 · 1136 阅读 · 0 评论 -
SpringBoot整合Sharding-JDBC分库分表使用
SpringBoot继承Sharding-JDBC分库分表使用最近在搞一个项目,数据量比较大,需要用到分库分表。于是看了一下这个Sharding-JDBC这个中间价,使用的比较新的版本。百度的基本都是 3.x版本,我这边选择了 4.0.0-RC1的版本引入依赖连接池选择 dbcp2mysql 的 驱动包持久层选择 Jpa分库分表选择 sharding-jdbc-core<d...原创 2019-07-03 09:30:39 · 2141 阅读 · 0 评论 -
Springboot 中使用 SLF4J
SLF4j使用如何在系统中使用SLF4J以后开发时候,日志记录方法的调用,不应该直接调用日志的实现类,而是调用抽象层里面的方法应该给系统里面导入 slf4j 的jar包和 logback 的 实现 jar 包import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class HelloWorld { publi...原创 2019-06-24 16:10:14 · 12294 阅读 · 0 评论 -
Centos 安装Maven以及遇到的一些问题
运行环境Centos7JDK1.8安装去maven 官网下载maven http://maven.apache.org/download.cgi我下载的是3.6 版本 https://www-us.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz将 下载的maven 复制到 /opt ...原创 2019-06-23 02:30:23 · 521 阅读 · 0 评论 -
@Conditional注解
作用必须是@Conditional指定的条件成立,才会给容器中添加组件,配置类中的所有内容才会生效自动配置类在一定条件下才能生效我们如何才能知道哪些自动配置类生效了我们可以启用debug=true属性来让控制台打印自动配置报告,这样就可以很方便的知道哪些自动配置类生效了=========================AUTO-CONFIGURATION REPORT=====...原创 2019-06-21 16:40:33 · 438 阅读 · 0 评论 -
linux Centos7.2 安装 配置jdk环境变量
环境准备Centos 7.2jdk1.8ftp 上传工具使用wget 下载jdk 1.8wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://...原创 2019-06-17 09:27:39 · 481 阅读 · 0 评论 -
Freemarker自定义标签通过Map获取的参数通过强制转换报错
概述昨天晚上做项目。自定义了一个Freemarker标签。 通过map.get(k)获取参数的时候。返回值为Object 类型。想着使用强制转换应该是能够 转为我想要的类型的。后来发现报错了。报错信息就是SimpleScalar 类型无法转换为String.自定义模版是要实现这个 TemplateDirectiveModel 类的发现这个方法 里面的Map 也没有指定 返回的value ...原创 2019-06-14 09:15:48 · 858 阅读 · 0 评论 -
springboot Current request is not a multipart request记错一下文件上传错误
springboot Current request is not a multipart request 使用springboot 制作excel表格上传时候报错错误原因。使用表单上传时候没有添加enctype="multipart/form-data原创 2019-08-29 16:18:11 · 5118 阅读 · 5 评论 -
JAVAHashSet中如何添加元素如何判断两个元素重复的标准
概述今天用HashSet需要添加不重复的对象,虽然知道HashSet是无序,不能添加重复对象,但是一直不清楚他的两个元素重复的标准是什么。查看HashSet的添加方法可以看到只有简单的一句, return map.put(e,PARSENT) == null. 也就是说。那么这个map 和 PARSENT是什么呢? 看下图可以看出来,这里的map 是一个 HashMapPRESENT...原创 2019-07-25 10:42:28 · 622 阅读 · 0 评论 -
JAVA多线程(三)Reentranlock 用法详解
Reentranlock 如果用于替代 synchronized需要注意的是: 必须要手动释放锁。使用synchronized 锁定的话,如果遇到异常。 jvm 会自动释放锁。 但是lock 必须手动释放锁。 因此经常在finally中进行锁的释放public class ReentrantLock01 { Lock lock = new ReentrantLock(); void ...原创 2019-06-30 23:37:41 · 1000 阅读 · 0 评论 -
JAVA多线程(二)volatile 关键字用法详解
volatile 关键字 使一个变量在多个线程可见AB 线程都使用到一个变量。 java 默认是A 线程中保留一份copy。 这样如果B线程修改了该变量。 则A线程未必知道使用了volatile关键字。 会在变量被修改的时候。 通知每一个线程。 让所有的线程都会读到变量的修改值。public class T { /*volatile*/ boolean running = true...原创 2019-06-30 22:54:50 · 374 阅读 · 0 评论 -
Java 多线程(一)synchronized 的用法详解
synchronized 定义在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile。synchronzied 是 悲观锁synchronized 关键字 对某个对象加锁 p...原创 2019-06-30 22:41:40 · 177 阅读 · 0 评论 -
java实现给图片添加水印
import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; import java.awt.image.BufferedImage; import java.io.File; import java.io....原创 2019-06-24 20:05:00 · 137 阅读 · 0 评论 -
JAVA如何使用自定义注解
注解的基础 注解的定义: Java的文件叫做Annotation 使用@interface表示 元注解: @interface上面按需要注解上一些东西包括@Retention,@Target,@Document,@Inherited四种 注解的保留策略: 1. @Retention(RetentionPolicy.SOURCE) // 注...原创 2019-04-02 17:09:11 · 565 阅读 · 0 评论 -
JAVA的23种设计模式之责任链模式
责任链模式: 将能够处理同一请求的对象连接成一条链,所提交的请求沿着链传递,链上的对象逐个判断是否有能力处理该请求。如果能则处理,如果不能则传递给链上的下一个对象。场景: 打牌时候,轮流出牌。 接力赛跑 大学中,奖学金审批 公司中,公文审批公司里面,请假条的审批过程: 如果请假天数小于3天,主任审批 如果请假天...原创 2019-03-12 11:31:09 · 233 阅读 · 0 评论 -
JAVA的23种设计模式之享元模式
享元模式(FlyWeight):场景:内存属于稀缺资源,不要随便浪费,如果有很多个完全相同或相似的对象,我们可以通过享元模式来节省内存。 核心:享元模式以共享的方式高效的支持大量细粒度对象的重用。 享元模式能做到共享的关键部分是区分了内部状态和外部状态 内部状态:可以共享。不会随着环境变化而变化。 外部状态:不可以共享。会随着环境变化而变化。 每一个棋子都是一个...原创 2019-03-11 16:30:43 · 146 阅读 · 0 评论 -
JAVA的23种设计模式之单例模式
一、饿汉式单例模式package cn.fllday.single;/** * 饿汉式 单例模式 * @author gssznb */public class HungrySinglePatterns { // 类进行初始化的时候,就立即加载这个对象。没有延时加载的优势。加载类时,线程是安全的。 private static HungrySinglePatterns inst...原创 2019-02-28 10:57:28 · 403 阅读 · 3 评论 -
Spring boot 配置拦截器
写一个拦截器 实现HandlerInterceptor。package cn.fllday.interceptor;import org.springframework.stereotype.Component;import org.springframework.web.servlet.HandlerInterceptor;import org.springframework.web...原创 2019-02-28 08:14:30 · 125 阅读 · 0 评论 -
Spring boot 整合 shiro 前后端分离,用户登陆之后 没有执行授权方法解决方案
问题描述: 项目使用spring boot,使用shiro 来管理权限,但是后来发现用户登陆之后。可以执行密码验证。但是并没有执行授权方法。所以用户无法正常执行各种操作。 解决方案:因为前面有我得spring boot 整合博客所以就暂时只贴解决方案的 代码了 @Bean public Authorizer authorizer(MyRealm myRealm...原创 2019-01-17 14:19:46 · 3669 阅读 · 8 评论 -
JPA 添加多对多报错 Cannot add or update a child row: a foreign key constraint fails
报错就是这个Caused by: java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row: a foreign key constraint fails (`cms`.`user_role`, CONSTRAINT `FK859n2jvi8ivhui0rl0esws6o`...原创 2019-01-17 10:03:24 · 1072 阅读 · 0 评论 -
JAVA的23种设计模式之工厂模式
工厂模式:简单工厂模式 工厂方法模式 抽象工厂模式面向对象设计的基本原则:OCP(开放原则 Open-Closed Principe) : 一个软件的实体应当对拓展开放,对修改关闭。 DIP(依赖倒转原型,Dependence Inversion Principle):要针对接口编程,不要针对实现编程。 LoD(迪米特法则,Law of Demeter):只与你得朋友通信,而避免...原创 2019-03-01 08:04:20 · 249 阅读 · 2 评论 -
JAVA的23种设计模式之建造者模式
场景使用:我们需要建造一个复杂的产品,比如说神州飞船,手机。这个复杂产品的创建,有这样一些问题需要处理:装配这些组件是不是有一个步骤问题:实际开发中,我们所需要的对象构建时候,也非常复杂,有很多步骤需要处理建造者模式的本质:分离了对象子组件的单独构造,(由Builder来负责)和装配(Direcor)。从而可以构造出复杂的对象。这个模式适用于:某个对象的构造过程复杂的情况下使用。...原创 2019-03-01 11:24:33 · 190 阅读 · 2 评论 -
JAVA的23种设计模式之原型模式
组合模式:使用组合的场景:把部分和整体的关系用属性结构来表示。从而使客户端可以使用统一的方式处理部分对象 和整体对象。组合模式核心:抽象构建(component)角色:定义了叶子和容器的共同点。 叶子(Leaf)构件角色: 无子节点。 容器(Composite)构建角色: 有容器特征,可以包含子节点组合模式工作流程分析:组合模式为处理属性结构提供了完美的解决方案。描述...原创 2019-03-07 16:34:25 · 109 阅读 · 0 评论 -
JAVA的23种设计模式之代理模式
代理模式: 核心作用:通过代理,控制对对象的访问。 可以详细控制访问某个(某类)对象的方法。在调节这个方法前做前置处理。调用这个方法后做后置处理 (AOP的微观实现)AOP(Aspect Oriented Programming 面向切面编程) 的核心实现机制核心角色:抽象角色:定义代理角色和真实角色的公共对外方法。 真实角色:实现抽象角色。定义真实角色所要...原创 2019-03-07 14:13:15 · 141 阅读 · 0 评论 -
Spring 使用注解@ControllerAdvice统一处理异常Exception
在spring 3.2中,新增了@ControllerAdvice 注解,可以用于定义@ExceptionHandler、@InitBinder、@ModelAttribute,并应用到所有@RequestMapping中。参考:@ControllerAdvice 文档创建全局统一处理异常类 GlobalExceptionControllerpackage cn.fllday.controll...原创 2019-02-27 12:12:26 · 478 阅读 · 0 评论 -
Spring boot 集成 redis
引入redis 依赖 <!-- 引入 redis 依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <...原创 2019-02-27 11:48:10 · 151 阅读 · 0 评论 -
Lucene学习(三) 使用IK 分词器
下载IK分词器访问:https://github.com/medcl/elasticsearch-analysis-ik/releases 去下载 分词器的源码压缩包。下载好之后。解压缩。使用idea打开项目。使用如下命令mvn install -Dmaven.test.skip=true这样你就可以在项目中自己的maven 仓库中检索到这个分词器了。<dependency>...原创 2019-02-27 11:40:38 · 648 阅读 · 0 评论 -
Lucene学习(二)如何创建索引以及搜索
概述创建索引的话,我就直接使用了死的数据。你们维护索引什么的我给一个思路,大家自己看着来吧,如果你会创建以及搜索的话。我相信你们肯定可以连接数据库对数据库进行索引以及查询。废话不说了。如何创建索引首先创建一个实体类吧!package com.gss.article.entity.vo;/** * 永无八阿哥 * * @Author:gssznb * @Date:Created...原创 2019-02-27 11:30:07 · 230 阅读 · 0 评论 -
Lucene 学习(一)Lucene介绍以及环境搭建
概述这几天因为公司项目需要做一个文章咨询的板块。需要用的全文检索。以前没有接触过这一块。所以自己就研究了一下lucene这个搜索引擎。学了好几天也没有做笔记。现在就记录下来吧。lucene是什么Lucene 即全文检索,全文检索是计算机程序通过扫描文章中的每一个词,对每一个词建立一个索引,指明该词在文章中出现的次数和位置。当用户查询的时候,根据建立的索引查找,类似于字典的检索字表查字的过程。...原创 2019-02-27 11:28:46 · 646 阅读 · 0 评论 -
JAVA的23种设计模式之外观模式
外观模式:迪米特法则(最少知识法则):一个软件实体应当尽可能少的与其他实体发生相互作用外观模式核心: 为子系统提供一个统一入口。封装子系统的复杂性,便于客户端调用外观模式示例:package cn.fllday.facade;public class 工商局 { public void gongshang() { System.out.println("...原创 2019-03-08 16:24:40 · 173 阅读 · 0 评论 -
JAVA的23种设计模式之装饰模式
装饰器模式:职责:动态的为一个对象增加新的功能。 装饰模式是一种用于代替继承的技术,无需通过继承增加子类就能拓展对象的新功能,使用对象的关联关系代替继承关系。更加灵活,同时能够避免类型体系的快速膨胀实现细节:Component 抽象构件角色: · 真实对象和装饰对象具有相同的接口,这样客户端对象就能以与真实对象相同的方式通装饰对象交互。 ConcreteComponent...原创 2019-03-08 16:05:43 · 160 阅读 · 0 评论 -
JAVA的23中设计模式之组合模式
组合模式:组合模式工作流程分析:组合模式为处理树形结构提供了完美的方案。描述了如何将容器和叶子如何进行递归组合,使得用户在使用时可以一致性的对待容器和叶子 当容器对象的指定方法被调用时,将遍历整个树形结构,寻找也包括这个方法的成员。并且调用执行,其中使用了递归调用的机制对整个结构进行处理。组合模式核心:抽象构件(component)角色:定义了叶子和容器组件的共同点。 叶子(Le...原创 2019-03-08 14:45:10 · 167 阅读 · 0 评论 -
JAVA的23中设计模式之适配器模式
适配器Adapter模式什么是适配器模式?将一个类的接口转换成客户端所希望的另一个接口,Adapter模式使用原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。模式中的角色:目标接口(Target):客户所期待的接口,目标可以是具体的或者抽象的类,也可以是接口。 需要适配的类(Adaptee):需要适配的类或者适配者类。 适配器(Adapter):通过包装一个需要适配的...原创 2019-03-08 14:26:54 · 149 阅读 · 0 评论 -
JAVA的23种设计模式之原型模式
原型模式:通过new 产生一个对象需要非常繁琐的数据准备或者访问权限,则可以使用原型模式 就是Java中的克隆技术,以某个对象为原型,复制出新的对象,显然新的对象具备原型对象的特点。 优势有:效率高于new 方式 克隆类似于new ,但是不同于new, 使用new创建的新对象的属性是采用的默认值。克隆出的对象属性和原型对象相同。并且克隆出的新对象改变不会影响原型对象。然后在修改克隆对象...原创 2019-03-05 16:41:57 · 136 阅读 · 0 评论 -
树形结构无限极分类数据结构以及递归函数写法
概述很多人见过菜单导航之类的东西吧,还有分类什么的。就是一级数据下面有二级三级甚至更多,这种数据就需要用到这个树形结构了。代码实现废话不多说。先创建菜单的实体类吧我是直接用的实体类里面的 main方法 写了个静态代码块用来模拟数据的。 数据库建模和这个差不多就行。下面上方法public class NavTree { // 创建一个静态的集合用来模拟从数据库中取出的数据 ...原创 2018-12-11 23:16:42 · 760 阅读 · 0 评论