java

Java中easypoi导入excel文件列名相同的处理方案

2020-06-21
Easypoi是什么 Easypoi 功能如同名字easy,主打的功能就是容易,让一个没接触过poi的人员,就可以方便的写出Excel导出.Excel模板导出.Excel导入.Word模板导出,通过简单的注解和模板语言(熟悉的表达式fe语法),完成以前复杂的写法 开源地址:https://gitee.com/lemur/easypoi 独特的功能 基于注解的导入导出,修改注解就可以修改Excel 支持常用的样式自定义 基于map可以灵活定义的表头字段 支持一堆多的导出,导入 支持模板的导出,一些

基于java读取并引用自定义配置文件

2020-06-21
首先在resources目录创建自定义的配置文件 配置文件的格式: 写工具类,得到配置参数 import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class MyConfig { public static Properties myProp = new Properties(); public static InputStream myResource = MyCo

详解maven依赖冲突以及解决方法

2020-06-21
什么是依赖冲突 依赖冲突是指项目依赖的某一个jar包,有多个不同的版本,因而造成类包版本冲突 依赖冲突的原因 依赖冲突很经常是类包之间的间接依赖引起的.每个显式声明的类包都会依赖于一些其它的隐式类包,这些隐式的类包会被maven间接引入进来,从而造成类包冲突 如何解决依赖冲突 首先查看产生依赖冲突的类jar,其次找出我们不想要的依赖类jar,手工将其排除在外就可以了.具体执行步骤如下 1.查看依赖冲突 a.通过dependency:tree是命令来检查版本冲突 mvn -Dverbose dep

详解JAVA设计模式之模板模式

2020-06-21
在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板.它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行.这种类型的设计模式属于行为型模式. 介绍 意图:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 主要解决:一些方法通用,却在每一个子类都重新写了这一方法. 何时使用:有一些通用的方法. 如何解决:将这些通用算法抽象出来. 关键代码:在抽象类实现,其他步骤在子

实例代码讲解JAVA 观察者模式

2020-06-21
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern).比如,当一个对象被修改时,则会自动通知依赖它的对象.观察者模式属于行为型模式. 介绍 意图:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 主要解决:一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作. 何时使用:一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知. 如何解决:使用面向对象技术

Spring如何基于Proxy及cglib实现动态代理

2020-06-21
spring中提供了两种动态代理的方式,分别是Java Proxy以及cglib JavaProxy只能代理接口,而cglib是通过继承的方式,实现对类的代理 添加一个接口以及对应的实现类 public interface HelloInterface { void sayHello(); } public class HelloInterfaceImpl implements HelloInterface { @Override public void sayHello() { System.

深入分析JAVA 多线程--interrupt()和线程终止方式

2020-06-21
一.interrupt() 介绍 interrupt() 定义在 Thread 类中,作用是中断本线程. 本线程中断自己是被允许的:其它线程调用本线程的 interrupt() 方法时,会通过 checkAccess() 检查权限.这有可能抛出 SecurityException 异常. 如果本线程是处于阻塞状态:调用线程的 wait() , wait(long) 或 wait(long, int) 会让它进入等待(阻塞)状态,或者调用线程的 join(),join(long),join(lon

Spring和SpringBoot比较及区别解惑

2020-06-21
1.概述: 对于 Spring 和 SpringBoot 到底有什么区别,我听到了很多答案,刚开始迈入学习 SpringBoot 的我当时也是一头雾水,随着经验的积累.我慢慢理解了这两个框架到底有什么区别,我相信对于用了 SpringBoot 很久的开发人员来说,有绝大部分还不是很理解 SpringBoot 到底和 Spring 有什么区别,看完文章中的比较,或许你有了不同的答案和看法! 2.什么是Spring呢? 先来聊一聊 Spring 作为 Java 开发人员,大家都 Spring 可不陌

浅谈SpringBoot2.3 新特配置文件属性跟踪

2020-06-21
背景 当我们使用 spring boot 在多环境打包,配置属性在不同环境的值不同,如下: spring: profiles: active: @project.profile@ #根据maven 动态配置profile --- spring: profiles: dev demo: lengleng_dev --- spring: profiles: prd demo: lengleng_prd 或者使用 spring cloud 配置中心 (nacos/config)等 再有就是 应用配置的

Java for each实现机制代码原理解析

2020-06-21
源测试代码如下 public class ForEachTest { public void test4Iterate(Iterable<String> strings) { for (String str : strings) { System.out.println(str); } } public void test4Array(String[] strings) { for (String str : strings) { System.out.println(str); } } }

eclipse实现ElGamal数字签名

2020-06-21
ElGamal数字签名,供大家参考,具体内容如下 一.实验目的 学习ElGamal算法在数字签名方面的使用,掌握教科书版本的ElGamal数字签名算法的编写,掌握ElGamal加密算法和ElGamal数字签名算法的异同. 二.实验要求 1.熟悉ElGamal数字签名算法. 2.掌握如何使用Java BigInteger类,简单实现教科书式的ElGamal公私钥签名算法. 3.了解ElGamal加密算法和ElGamal数字签名算法的异同. 三.开发环境 JDK 1.7,Java开发环境(本实验采用

Spring IOC和DI实现原理及实例解析

2020-06-20
什么是Spring Spring是一个以IoC和AOP为内核的框架. IoC(Inversion of Control ,控制反转)是Spring的基础. IoC简单说就是创建对象由以前的程序员调用new 构造方法,变成了交由Spring创建对象. DI(Dependency Inject,依赖注入)与IoC的含义相同,只不过这两个称呼是从两个角度描述的同一个概念. 简单地说, DI就是对象的属性,已经被注入好相关值了,直接使用即可. IoC-控制反转   把各个对象类封装之后,通过IoC容器来

Java模拟实现QQ三方登录(单点登录2.0)

2020-06-20
本文实例为大家分享了Java模拟实现QQ三方登录的具体代码,供大家参考,具体内容如下 本次例子模拟这样的情况: 一共有2个spring boot应用: 一个是某公司的web,第二个是QQ服务端. 某公司的应用为127.0.0.1:8082 QQ服务端为127.0.0.1:8081 演示如下: 点击使用QQ登录: 在弹出的界面输入数据点击登录后: 关键代码如下: 某公司web端: MyController.java package cn.it1995.login.controller; impor

es(elasticsearch)整合SpringCloud(SpringBoot)搭建教程详解

2020-06-20
注意:适用于springboot或者springcloud框架 1.首先下载相关文件 2.然后需要去启动相关的启动文件 3.导入相关jar包(如果有相关的依赖包不需要导入)以及配置配置文件,并且写一个dao接口继承一个类,在启动类上标注地址 <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> </dependency> &l

Java工程mybatis实现多表查询过程详解

2020-06-20
1.先做一些准备工作 我们首先在创建一个 java 工程,还需要创建两张表,它们分别是用户表 user,和帖子表 post,一个户用户可以有多个帖子. user表的结构和数据: -- ---------------------------- -- Table structure for `user` -- ---------------------------- CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT

使用maven命令安装jar包到本地仓库的方法步骤

2020-06-20
第三方jar包在开发工具中引入后编译没问题, 启动调试包括打包时会提示找不到jar包的错误.需要上传到maven仓库中,并在pom文件内引入. maven命令: 安装指定文件到本地仓库命令:mvn install:install-file -DgroupId=<groupId> : 设置上传到仓库的包名 -DartifactId=<artifactId> : 设置该包所属的模块名 -Dversion=1.0.0 : 设置该包的版本号 -Dpackaging=jar : 设置该包的类

微信小程序之搜索分页功能的实现代码

2020-06-20
直接上代码: wxml: <wxs src="../wxs/changeimg.wxs" module="changeimg" /> <view class="container"> <view class="search_input"> <image class="back" src="" mode="widthFix"&g

Java实现简单推箱子游戏

2020-06-20
本文实例为大家分享了Java实现简单推箱子游戏的具体代码,供大家参考,具体内容如下 *编写一个简易的推箱子游戏,使用10*8的二维字符数据表示游戏画面,H表示墙壁; &表示玩家角色: o表示箱子,表示目的地.玩家可以通过输入a.d.w. s字符控制角色 移动,当箱子推到目的地时显示游戏结束,运行结果如图所示. package test; import java.util.Random; import java.util.Scanner; public class test3 { public s

Spring boot AOP通过XML配置文件声明

2020-06-20
通过 XML 配置文件声明 在前两篇博文和示例中,我们已经展示了如何通过注解配置去声明切面,下面我们看看如何在 XML 文件中声明切面.下面先列出 XML 中声明 AOP 的常用元素: AOP配置元素 用途 aop:advisor 定义AOP通知器 aop:after 定义AOP后置通知(不管被通知的方法是否执行成功) aop:after-returning 定义AOP返回通知 aop:after-throwing 定义AOP异常通知 aop:around 定义AOP环绕通知 aop:aspec

Java JDK动态代理实现原理实例解析

2020-06-20
JDK动态代理实现原理 动态代理机制 通过实现 InvocationHandler 接口创建自己的调用处理器 通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类 通过反射机制获得动态代理类的构造函数,其唯一参数类型是调用处理器接口类型 通过构造函数创建动态代理类实例,构造时调用处理器对象作为参数被传入 Interface InvocationHandler 该接口中仅定义了一个方法Object:invoke(Object obj,Method m