- 博客(23)
- 资源 (3)
- 收藏
- 关注
原创 从源码级别了解java双亲委派
双亲委派双亲委派的机制是在Java1.2后引入的,其工作原理就是java在加载某个类(.class)文件时会先去委托父加载器去寻找并加载目标类,递归这个操作,如果所有的父加载器在自己的加载类路径下都找不到目标类,自己才会去加载这个类。类加载器的类别引导类加载器(Bootstrap ClassLoader)引导类加载器(启动类加载器):c++编写,负责将JAVA_HOME/lib下面的核心类库或-Xbootclasspath选项指定的jar包等虚拟机识别的类库加载到内存中,构造ExtClassLoad
2021-07-28 20:49:00
148
1
原创 Spirng的Controller是单例还是多例?怎么保证并发安全
所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通常都是单例的,而多例则指每个请求用一个新的对象来处理,比如action;讲解controller默认是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱。正因为单例所以不是线程安全的。下面我们来简单的验证一下:package com.kafka.demo.controller;import org.springframework.web.bind.annotation.RequestMapping;.
2020-09-01 10:24:09
217
原创 Spring Boot 2.X手册:EasyPoi导入导出Excel
easypoi 功能如同名字 easy,主打的功能就是容易,让一个没见接触过 poi 的人员可以方便地写出 Excel 导出、Excel 模板导出、Excel 导入、Word 模板导出,通过简单的注解和模板语言(熟悉的表达式语法),完成以前复杂的写法。EasyPoi的官网上是这样介绍的:EasyPoi的目标不是替代poi,而是让一个不懂导入导出的快速使用poi完成Excel和word的各种操作,而不是看很多api才可以完成这样工作。用过EasyPoi的人才会体会到EasyPoi的便捷,一个Excel.
2020-08-30 16:05:41
302
原创 Nginx+Tomcat实现80端口转发8080端口
一、安装依赖# gcc安装,Nginx源码编译需要yum install gcc-c++# PCRE pcre-devel 安装, Nginx的http模块使用pcre来解析正则表达式yum install -y pcre pcre-devel# zlib安装,Nginx使用zlib对http包的内容进行gzipyum install -y zlib zlib-devel# OpenSSL 安装,强大的安全套接字层密码库,Nginx不仅支持http协议,还支持https(即在ssl协议上传输h
2020-08-09 12:11:31
1452
原创 SSM 利用AES 进行JS和Java互通加解密
最近新项目上线,被客户扫描出【已解密的登录请求】,原因是我们在登录请求时没有对用户名或密码进行加密请求(悲催,以前的项目没有进行加密也没出啥问题),本着客户至上的原则,我们在下次投产时把这个功能给加上。在网上关于JS和java互通加解密的算法有很多,比如DES、RSA、base64和AES等。权衡之下选择了AES加解密算法。废话不多说,开始我们的代码之旅吧。...
2020-07-23 22:13:06
231
原创 idea编辑器提示找不到jar包
今天在idea项目中引入了一个WebSocket的jar包,idea也显示jar包下载成功,但是项目一直编译不过去,提示org.springframework.web.socket.config.annotation包不存在,后来在网上找到一个解决方案,切换到项目所在的根目录下,执行mvn idea:idea ,完美解决。奉上原博客地址:idea项目突然提示找不到符号或程序包不存在...
2020-07-05 07:50:03
753
原创 vue基础(三)-页面路由
Vue.js路由允许我们通过不同的URL访问不同的内容。通过Vue.js可以实现多视图的单页Web应用(single page web application,SPA)。Vue.js路由需要载入vue-router库。添加页面我们打开前面创建好的项目,并把components改为views,并在views目录下添加3个页面:Login.vue、Home.vue、404.vue。3个页面内容简单相似,只有简单的页面标识,如登录页面是“Login Page”。Login.vue代码:<tem
2020-05-24 21:12:42
368
原创 vue基础(二)-vue集成Element
导入项目打开Visual Studio Code,选择File-add Folder to Workspace,导入我们的项目,如图所示安装ElementElement 是国内饿了么公司的一套开源框架,简洁优雅,提供了Vue、React、Angular多个版本,这里使用Vue版本搭建我们的界面。对于Element的安装教程,官网上有详细的教程,我们可以参考官网上的教程。访问地址https://element.eleme.cn/#/zh-CN/component/installation,按照安装指
2020-05-11 22:15:57
437
原创 vue开发环境的搭建
Node JS的安装Node JS提供的NPM依赖管理和编译打包工具使用起来非常方便,对于前端比较大型的项目还是采用NPM作为打包工具比较理想。要使用NPM就需要安装NodeJS,下载地址为http://nodejs.cn/download/。选择系统对应的版本,这里我们下载Window系统的64位zip文件node-v14.2.0-win-x64.zip。下载完成后解压,可以看到里面有一个node.exe的可执行文件,如图所示:把Node添加到系统环境变量里面,打开cmd命令行,输入npm -v,如
2020-05-10 20:49:08
184
原创 vue基础(一)-使用vue-cli4.1.2创建项目
今天我们来用vue+Element搭建一个前台项目,废话不多说,咱们开始吧!环境安装的话大家可以自行百度一下。在这里我用的vue脚手架的版本是@vue/cli 4.1.2。创建项目vue create 项目名称选择手动配置(如果喜欢使用eslint可以选择默认)键盘上下键即可切换,刚开始其实有两个选项,我之前曾经自定义过,所以有四个。选择手动配置,按Enter键。自定义配置如下按空格键选中或取消路由规则接下来提示我们是否使用history router,也就是是否路径到#符号,建议选N
2020-05-10 19:49:45
529
原创 Oracle 12c:ORA-01033:ORACLE 正在初始化或关闭
以下是我的解决方法1、sqlplus中使用sqlplus / as sysdba登录值得注意的是这里,由于是12c数据库,所以要将container指定为你的pdbalter session set container=ORCLPDB;2、打开数据库startup...
2020-03-15 21:56:06
631
原创 org-20000:oru-10027:buffer overflow,limit of10000 bytes
今天连续吊起多个过程,前三个执行成功,第四个到最后一个就报org-20000:oru-10027:buffer overflow,limit of10000 bytes。让人感觉很奇怪,最会借助度娘了解到可能是dbms_output.put_line输出语句有问题:缓冲区是10000位,打印的字符超出了限制。可以有三种办法解决:解决方法1 增大缓冲区SQL>set server...
2020-03-04 14:45:23
261
原创 Object类中equals方法和hashcode方法
equals():用来判断两个对象是否相同,在Object类中是通过判断对象间的内存地址来决定是否相同hashCode():获取哈希码,也称为散列码,返回一个int整数。这个哈希码的作用是通过该对象在哈希表中的索引位置。由于同为Object类中的方法,所以基本上所有java类都会继承这两个方法,所以通过阅读hashCode方法的注释发现了: /** * Returns a h...
2020-02-09 09:30:35
460
原创 Java 最常见 200+ 面试题全解析:面试必备
1、java创建对象时会做哪些操作?创建java对象的前提是必须是类要加载之后才能创建对象,java的类加载使用类加载器(ClassLoder)加载类的,那么类加载器是如何工作的?类的加载是通过jvm加载的,分为三个步骤:装载(Load),链接(link)和初始化(initializa),链接又分为三个步骤如下图所示装载:查找并加载类的二进制数据;链接:验证:确保被加载类的正确性;准...
2020-01-29 17:24:59
196
原创 使用Eclipse+maven搭建Spring Boot
创建项目时选择Maven Project,如下图所示:选中Use default Workspace location 复选框,如下图所示:选择项目骨架,保持默认即可,如下图所示:输入项目信息,如下图所示:完成以上4个步骤之后,单击Finish按钮即可完成项目创建。首先添加spring-boot-starter-parent作为parent,代码如下: <!-- ...
2019-12-06 10:50:20
287
原创 字符集编码
乔哥:小萌,听说你去面试了,怎么样啊?小萌:哎…乔哥,你给我讲讲什么是字符集和编码呗,ASCII,utf-8,utf-16,utf-32又是啥?乔哥:好的,在搞懂字符集先来讲讲什么是编码吧~在计算机底层,比如说你的名字“小萌”在计算机中并不是文字的形式,而是一串二进制数字,如“011001100110…”人类只认识文字,可惜计算机只认0和1,双方都不能妥协,那就必须要有一个从文字到0、1的...
2019-10-26 16:19:32
130
原创 Spring的注解知识
@Controller标识该类是Sring MVC controller处理器,用来创建处理http的请求对象。@Controllerpublic class LoginController { private static final Log logger = LogFactory.getLog(LoginController.class); @RequestMapping(va...
2019-10-20 09:29:40
80
原创 Java对象克隆
java中对象克隆有两种方法:1)实现Cloneable接口并重写Object类中的clone()方法;2)实现Serializable接口,通过对象的序列化和反序列化实现克隆,可以实现真正的深度克隆。...
2019-09-04 22:04:08
266
原创 锋利的jQuery第一章
windows.onload()和$(document).read()的对比windows.onload$(document).ready()执行实机必须等待网页中所有的内容加载完毕后(包括图片)才能执行网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完编写个数不能同时编写多个 以下代码无法正确执行:window.onload = fun...
2019-08-07 16:05:20
75
原创 回调
回调首先明确一点,回调并非异步调用,回调是一种解决异步函数执行结果的处理方法。在异步调用,如果我们希望将执行的结果返回并且处理时,可以通过回调的方法解决。为了更好的区分回调和异步调用的区别,我们来看一个简单的例子,代码如下:/***文件名:callback.js,Node.js示例代码,说明非异步接口调用的Node.js代码执行过程同样是同步的--*/function waitFive(...
2019-06-14 17:16:28
85
原创 同步和异步调用
同步调用 同步调用是一种阻塞式调用,一段代码调用另一端代码时,必须等待这段代码执行结束并返回结果后,代码才能继续执行下去。 例如考试时,有的同学是一道题一道题的往下做,当有一道题没做出来时,绝对不会继续做下去,这就是同步调用的过程,一段逻辑没有执行完成时,代码会一直等待,直到代码执行结束,才执行下面的逻辑。/****文件名:answer.php PHP测试代码,应用代码说明同步调用思想...
2019-06-13 21:19:07
1690
转载 Redis的数据类型
Redis数据类型Redis支持五种数据类型:string(字符串)、hash(哈希),list(列表),set(集合)及zset(Sorted set:有序集合)。string字符串string是Redis的基本数据类型,是二进制安全的,可以包含任何数据,比如JPG图片或者是序列化对象,string类型最大可以存储521MB。实例127.0.0.1:6379> SET name ...
2019-05-18 21:00:13
99
转载 Redis简介
Redis简介Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis与其他key-value缓存产品有一下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。Redis支...
2019-05-18 18:46:29
80
zppt5706.zip
2019-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人