java web
xiaopengyaonixi
Enjoy life Enjoy coding
展开
-
SpringBoot集成Dubbo框架
1. Dubbo框架 Dubbo框架是一个高性能、重量轻、基于java的RPC框架。Dubbo提供了三个关键功能,包括基于接口的远程调用、容错和负载平衡,以及自动服务注册和发现。Dubbo可以和Spring框架无缝集成。官方的Dubbo框架如下图所示:其核心部分包含:1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡...原创 2020-07-12 21:59:42 · 496 阅读 · 0 评论 -
JVM的工作原理
为了方便管理,JVM在执行Java程序的时候,会把它所管理的内存划分为多个不同的区域:(1)class文件class文件是Java程序编译后生成的中间代码,这些中间代码将会被JVM解释执行。(2) 类装载子系统类装载子系统负责把class文件装载到内存中,供虚拟机和用户自定义类装载器。其中,启动类装载器是JVM实现的一部分;用户自定义类装载器则是java程序的一部分,必须是C...转载 2019-03-16 20:19:15 · 222 阅读 · 0 评论 -
图解Java 堆
问题:java堆被分成老年代和年轻代,他们有何区别?根据对象的生命周期的长短把对象分成不同的种类(年轻代,年老代和持久代),并分别进行内存回收, 也就是分代垃圾回收。什么情况下会触发fullGC,应该如何避免?1)调用System.gc()方法会触发fullGC,因此,在编码的时候尽量避免调用这个方法;2)老年代空间不足。由于老年代主要用来存储从年轻代转入的对象,大对象和...原创 2019-03-17 14:07:30 · 325 阅读 · 0 评论 -
Java 实现多线程方式总结
java 虚拟机是运行所有java程序抽象的计算机,是java语言允许并发地运行多个线程。多线程的实现一般 有以下三个方法:(1) 实现Runnable接口,并实现该接口的run()方法。自定义类并实现Runnable接口,实现run()方法; 创建Thread对象,用实现Runnable接口的对象作为参数实例化该Thread对象; 调用Thread的start()方法。packa...转载 2019-03-17 20:40:44 · 195 阅读 · 0 评论 -
Java 线程同步举例-使用Condition类实现
题目描述:一个文件中有10000个数,用Java语言实现一个多线程程序,将这10000个数输出到5个不同的文件中。要求启动10个线程,两两一组,分为5组。每组两个线程分别将文件中的奇数和偶数输出到改组对应的一个文件中,需要偶数线程每打印10个偶数,就将奇数线程打印10个奇数,如此交替执行。同时需要输出记录输出速度,每完成1000个数就在控制台中打印当前完成数量,并在所有线程结束后,在控制台输...转载 2019-03-18 16:08:28 · 395 阅读 · 0 评论 -
Java 线程池的理解
为什么要引入java线程池?new Thread()不好吗?因为通过new Thread()方法来创建线程执行我们的任务,是非常耗时,并且他们独立各自运行,缺乏统一管理。这样最直接的后果:过度消耗资源,最终导致性能急剧下降,这样引入线程池就可以处理上面的问题。使用线程池的好处?线程池中的线程可以被所有的工作线程重复利用,减少线程创建的次数; 可以限制线程的个数,不会导致...转载 2019-03-18 19:01:08 · 252 阅读 · 0 评论 -
JDBC事务隔离级别
读“脏数据”一个事务读取了另一个事务尚未提交的数据,例如当事务A与事务B并发执行,当事务A更新后,事务B查询读取到事务A尚未提交的数据,此时事务A回滚,则事务B读取到的数据是无效的“脏数据”。“不可重复读”一个事务的操作导致另一个事务前后两次读取到不同的数据,例如当事务A与事务B并发执行时,当事务B查询读取数据后,事务A更新操作更改事务B查询到的数据,此时事务B再次读取该数据...转载 2019-03-18 20:53:42 · 318 阅读 · 0 评论 -
手撕forward 和 redirect
在设计Web应用的时候,通常要把有一个系统进行结构化设计,按照模块进行划分,让不同的Servlet来实现不同的功能,例如可以让其中的一个Servlet接收用户的请求,另一个Servlet来处理用户的请求。为了实现这种程序的模块化,就需要保证在不同的Servlet之间可以相互跳转,而Servlet有两种方式:forward和redirect方式。forward是服务器内部的重定向,服务器直接...转载 2019-03-19 10:53:38 · 165 阅读 · 0 评论 -
SpringBoot 集成 MongoDB 实现文件上传下载
一个项目(本文是基于SpringBoot2.0.5项目环境下的操作)里面需要用到MongoDB 上传文件的操作,记录 一下开发的过程。另附一个使用swagger进行调试使用的小坑。1.引入项目依赖(pom.xml) <!-- mogodb 的支持--> <dependency> <groupId>org.spr...原创 2019-04-23 20:14:13 · 3844 阅读 · 3 评论 -
SpringBoot + Vue (ElementUI)的小例子
关于SpringBoot项目的搭建,Vue的环境搭建这里不再中赘述。1.首先建立数据库表:DROP TABLE IF EXISTS `semester`;CREATE TABLE `semester` ( `id` int(11) NOT NULL AUTO_INCREMENT, `semesterid` char(200) CHARACTER SET utf8 COLLAT...原创 2019-05-14 12:42:58 · 2186 阅读 · 1 评论 -
Vue 项目中 使用fullcalendar 时间段选择插件(类似课程表格)
最近完成一个项目,有这样的需求,我们需要选择一个会议室,但是最好能够通过在图上显示出该 会议室在某某时间段内已经被预定了。先看一下这个功能最终实现的效果,看一看是不是你想要的效果,是您需要的请继续读下去,如果不是请忽略本文。本文中是基于VUE+elementui项目中实现的前后端分离的前端功能部分:所使用的插件:https://github.com/fullcalendar/ful...原创 2019-05-16 09:10:24 · 13149 阅读 · 16 评论 -
SpringBoot+Vue项目使用poi-tl来实现导出word文档
项目需求:需要将数据导出成word文档,但是必须是按照一定的格式。这里使用了一个小插件,是基于poi的再次封装:https://github.com/Sayi/poi-tl/1.maven引入包<!-- poi Excel、Word操作--> <dependency> <groupId>com.deepoove...原创 2019-05-22 13:36:19 · 5056 阅读 · 3 评论 -
vue项目中对某个区域绘制水印
首先看一下效果:其实原理很简单,就是使用canvas画成图,然后设置div的背景即可,这里参考了其他人思路又按照我自己的需求,封装了一个插件,可以直接在项目中使用,这里可以对某一个单独的区域设置水印:'use strict'const watermark = {}/** * * @param {要设置的水印的内容} str * @param {需要设置水印的容器}...原创 2019-09-13 19:37:17 · 2061 阅读 · 2 评论 -
深入工厂模式,观察者模式,适配器模式,单例模式
工厂模式专门负责实例化有大量公共接口的类。工厂模式可以动态地决定将哪一个类实例化,而不必实现知道每次要实例化哪一个类。客户类和工厂类是分开的。消费者无论什么时候需要某种产品,需要做的只是向工厂提出请求即可。消费者无需修改就可以接纳新产品。当然也存在缺点,就是当产品修改时,工厂类也要做出相应的修改。工厂模式包含以下几个形态1)简单工厂模式(Simple Factory)模式。简单工厂模...转载 2019-03-19 19:39:24 · 906 阅读 · 0 评论 -
Java 使用正则表达式截取字符串
项目里面一个小需求能够把用户输入的字符串进行切割: public static void main(String[] args) { String content = "第一条 为了保障网络安全,维护网络空间主权和国家安全、社会公共利益,保护公民、法人和其他组织的合法权益,促进经济社会信息化健康发展,制定本法。\n" + "第二条 在中华人民...原创 2019-03-07 21:37:20 · 5550 阅读 · 0 评论 -
mybatis学习 - 多表查询的实现
多表查询的实现一、添加数据表添加数据表的sql文:-- 创建coursecreate table course( id int(20) auto_increment primary key, courseName varchar(60), detail varchar(1024));-- 创建studentcreate table student( id转载 2016-11-28 22:06:24 · 386 阅读 · 0 评论 -
java 的动态代理
java 的动态代理什么是代理?代理模式就是在原有的服务上多加了一个占卫,通过这个占卫去控制服务的访问。动态代理示意图如下:使用动态代理的原因:1.一方面可以控制如何访问真正的对象,提供额外的服务;2.另一方面可以重写一些类来满足特定的需要一般动态代理分为两种:1.jdk反射机制提供的代理 2.cglib提供的代理反射技术/** * java转载 2016-11-30 10:34:14 · 687 阅读 · 0 评论 -
mybatis 学习--mybatis基本用法入门
mybatis入门1.创建java web项目2.添加mybatis的jar包和mysql的驱动jar包3.在数据库中创建一个数据库,并创建一个测试的数据表user并添加数据4.添加user 的java类package com.xiaopeng.model;public class User { private int id; priva转载 2016-11-27 15:27:04 · 360 阅读 · 0 评论 -
java 如何实现等待子线程结束
工作中往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理结果进行汇总的产景, 这时候就需要使用线程了。一个线程启动之后, 是异步的去执行需要执行的内容的, 不会影响主线程的流程, 往往需要让主线程指定后, 等待子线程的完成. 这里有几种方式.站在 主线程的角度, 我们可以分为主动式和被动式.主动式指主线主动去检测某个标志位, 判断子线程是否已经完成. 被转载 2016-12-18 20:53:18 · 1902 阅读 · 0 评论 -
java 调用webservice(xml格式交换)工具类
今天在公司开发一个webservice相关的项目使用RPC调用时候,由于报文返回过大,出现了内存溢出的情况。这里可以使用axis访问webservice,这里是我封装的工具类。package com.handkoo.utils; import javax.xml.namespace.QName;import javax.xml.rpc.ParameterMode;import org原创 2017-01-04 20:13:07 · 7972 阅读 · 1 评论 -
java开发webservice几种方式小结
1.利用jdk web服务api实现,这里使用基于 SOAP message 的 Web 服务第一步.新建一个web项目,编写一个POJO.package com.handkoo.webservice.service01;import javax.jws.WebMethod;import javax.jws.WebService;import javax.xml.ws.Endp转载 2016-12-28 14:57:20 · 5704 阅读 · 0 评论 -
java web 使用cookie记住用户的账号密码
毕业设计中需要用到记住账号密码的功能,网上搜到了一个解决方案,自己稍加改造就是下面的方法。首先是登录的页面,当用户勾选记住密码,传递给controller(我用的SSM框架),后台设置cookie的值,然后下次登录的时候就不用再次输入账号和密码了。login.jsp的代码:<%@ page language="java" contentType="text/html; charset转载 2017-01-10 10:53:07 · 6156 阅读 · 0 评论 -
调用高德地图api 实现地址解析
应业务需求,实现输入一个地址,调用高德的地图的api将返回解析后的地址高德地图的官方说明:https://lbs.amap.com/api/webservice/guide/api/georegeo第一步,注册一个账号,创建一个应用取得appkey第二步,仔细研读官网api,封装一个返回的实体类package com.handkoo.entity;import原创 2017-03-21 17:12:48 · 25162 阅读 · 21 评论 -
SpringMVC实现文件上传和下载的工具类-MyFileUtils
本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中。开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成类。我的工具类具体代码如下:package com.baosight.utils;import java.io.BufferedInputStream;import java.io....原创 2018-07-22 14:55:02 · 2767 阅读 · 0 评论 -
ZUI + SSM框架下数据表格的使用
完成一个小项目,后端为SSM框架,前端使用了ZUI框架,下面记录了如何使用zui框架下的datagrid组件来实现传统页面下1.加载数据2.关键字搜索3.按照字段排序4.全选常用功能的实现,整个过程实现不复杂。为了方便以后直接使用和参考,和其他使用相同或类似技术开发人员直接上手,将整个过程记录下来。首先实现的页面效果如下:Demo前期的准备:本实例使用了acco...原创 2019-03-01 17:21:00 · 3232 阅读 · 3 评论 -
SSM项目之注册页面知识点整理
最近完成一个小项目,每次都会编写注册功能的实现。为了方便以后自己查阅和使用相同技术点的开发人员参考,记录一下注册页面所涉及知识点。目录1.图片验证码技术保护web应用2.使用bootstrapvalidator 技术进行前端字段验证3.后端使用JSR303进行字段验证4.这里封装了两个js小方法5.使用md5.js来对前端的密码加密6.使用sweetalert进行弹框消...原创 2019-03-02 11:26:59 · 756 阅读 · 0 评论