![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java技术总结
pengjwhx
个人博客地址:www.pengpipi.top
展开
-
实现webservice的几种方式
1. 概念了解1, WebService是两个系统的远程调用,使两个系统进行数据交互,如应用:天气预报服务、银行ATM取款、使用邮箱账号登录各网站等。2, WebService之间的调用是跨语言的调用。Java、.Net、php,发送Http请求,使用的数据格式是XML格式。3, webxml.com.cn上面有一些免费的WebService服务,可以进去...原创 2018-10-25 18:09:52 · 95486 阅读 · 0 评论 -
JVM虚拟机概念了解
虚拟机就是一台虚拟的机器,可以分为系统虚拟机和程序虚拟机两种,系统虚拟机是一个完成的操作系统的软件平台; 程序虚拟机就是为 执行单个计算机程序而设计的,比较著名的就是java虚拟机。 常用的系统虚拟机 :visual Box、vmware; 常用的 java程序虚拟机: classic、hotsport等java虚拟机基本概念了解类加载器:负责从文件系统中或者网络中加载类...原创 2018-10-21 15:38:37 · 207 阅读 · 0 评论 -
关于对CountDownLatch、CyclicBarrier、Semaphore线程同步理解
概念描述以及代码理解CountDownLatch(闭锁)出现再JDK1.5中,主要是使一个线程A或是组线程A等待其它线程执行完毕后,一个线程A或是组线程A才继续执行,可以实现线程组同步运行,并在所有线程组结束后再运行等待的线程,闭锁的状态是一次性。 例如:主线程等待线程组运行完毕后再执行,是线程组之间的等待。public class CountDownLatchTest { ...原创 2018-10-10 14:00:43 · 127 阅读 · 0 评论 -
zookeeper实现分布
实现思路、流程1.客户端连接zookeeper,并在/lock下创建临时的且有序的子节点,第一个客户端对应的子节点为/lock/lock-0000000000,第二个为/lock/lock-0000000001,以此类推。2.客户端获取/lock下的子节点列表,判断自己创建的子节点是否为当前子节点列表中序号最小的子节点,如果是则认为获得锁,否则监听/lock的子节点变更消息,获得子节点变...转载 2018-09-30 17:59:48 · 295 阅读 · 0 评论 -
jenkins自动部署
安装jenkins下载地址:https://jenkins.io/download ,安装完成会跳安装首页面,根据提示的路径得到密码下载常用jenkins插件安装Deploy to container Plugin(自动化部署插件)安装Maven Integration Plugin(Maven集成插件)安装Publish Over SSH Plugin(SSH...原创 2018-10-17 22:38:17 · 132 阅读 · 0 评论 -
关于解决WEB-INF的JSP文件引webRoot下的Js、css和图片的问题
出现原因优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用 *.do 、 .xhtml、.hml等后缀方式进行区分。这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL。通俗说RESTf风格就是在Spring M...原创 2018-09-20 22:08:02 · 814 阅读 · 0 评论 -
log4j2日志保存
logj2与log4j的区别log4j2是log4j的升级版,log4j 2.0与以往的1.x有一个明显的不同,其配置文件只能采用.xml, .json或者 .jsn。在默认情况下,系统选择 configuration文件的优先级如下:(classpath为scr文件夹):1.classpath下名为 log4j-test.json 或者log4j-test.jsn文件...原创 2018-09-18 15:00:08 · 1919 阅读 · 0 评论 -
spring集成kfka实现消息队列
1.搭建kafka运行环境 ,下载地址:http://kafka.apache.org/downloads下载完修改安装文件config里面的server.properties文件,将listeners=PLAINTEXT://IP:9092改成服务器的IP,修改zookeeper注册地址.\bin\windows\kafka-server-start.bat .\config\...原创 2018-09-06 22:57:15 · 1371 阅读 · 0 评论 -
用Maven中profiles实现多环境打包
在软件开发和部署过程中,我们的软件往往需要在不同的运行环境中运行,例如:开发人员本地开发环境、测试团队的测试环境、生产仿真环境、正式生产环境,不同的公司可能还会有更多的环境需要对项目配置进行动态切换。maven的profile + resources + filter实现 【1】配置项目中需要用到的环境<profiles> <!--配置本地环...原创 2018-07-20 17:25:45 · 362 阅读 · 0 评论 -
多线程面试题总结
1) 什么是线程?线程是操作系统能够进行运算调度的最小单位,它被包含在进程之中,是进程中的实际运作单位。程序员可以通过它进行多处理器编程,你可以使用多线程对运算密集型任务提速。比如,如果一个线程完成一个任务要100毫秒,那么用十个线程完成改任务只需10毫秒。Java在语言层面对多线程提供了卓越的支持,它也是一个很好的卖点。欲了解更多详细信息请点击这里。2) 线程和进程有什么区别?线程是进程的子转载 2018-01-03 17:22:04 · 303 阅读 · 0 评论 -
原生rabbitMq实现
原生实现rabbitMQ为什么要使用rabbitMQ消息队列我们模拟这样一个场景,假如你在网上购物商城买了东西,你支付过程5s、发送短信通知5s、邮件通知等时间就更长了,你整个支的过程我们模拟这样一个场景,假如你在网上购物商城买了东西,你支付过程5s、发送短信通知5s、邮件通知等时间就更长了,你整个支付的过程就和很长了,因为代码是耦合在一起,但是如果你使用消息中间系统的话,我们支付过程就...原创 2018-10-24 22:48:19 · 556 阅读 · 0 评论 -
spring集成rabbitmq实现消息队列
RabbitTemplate概念了解RabbitMQ是由Erlang(爱立信公司)语言开发,实现Advanced Message Queuing Protocol (AMQP高级消息队列协议)的消息中间件。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。• Broker:消息队列服务器实体,例如RabbitMQ服务• Vhost:虚拟主机,默认为“...原创 2018-10-30 23:03:01 · 296 阅读 · 0 评论 -
解决上银联长短连接问题
前段时间,公司新接上银联支付通道,在测试的时候,没有出现超时的问题,但是到生产总是出现验证码发送失败的情况,翻看日志发现是请求上银联出现超时(connection reset的情况)。然后商量确定请求方式,他们确定说他们是短连接,我这边通过fiddler抓包发现我们这边使用的是长连接,商量我们这边先调整为短连接试试。TCP长短连接概念http(HyperText Transfer Pro...原创 2018-11-05 22:47:23 · 983 阅读 · 0 评论 -
threadLocal详解
1. threadLocal概念ThreadLocal是线程本地变量的意思,可以做到线程间数据隔离,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不同的变量值完成操作的场景。2. 源码分析初始化threadLocalThreadLocal.ThreadLocalMap threadLocals = null;ThreadLocal<?&...原创 2019-06-13 22:06:54 · 202 阅读 · 0 评论 -
mybatis插件自动生成各层代码方式
背景介绍在项目中我们使用mybatis时,总要写数据库字段和实体类对应的映射文件,那时候简单而又繁琐的工作令我们很烦,但是mybatis为了能更快的生成代码,使用插件就能简单的生成功能实现,实现的方式有如下两种:1.mybatis-generator使用这个插件能生成简单的xml文件(包含简单的crud的方法实现)、mapper文件、以及实体类//安装插件<plugin> ...原创 2019-04-28 23:08:31 · 797 阅读 · 0 评论 -
分布式系统实现分布锁的方式
1. 什么是分布式锁概念: 防止两个节点在同一条数据上面操作,比如多个节点机器对同一个订单操作不同的流程有可能会导致该笔订单最后状态出现错误,造成损失。2.分布锁的特点互斥性:和我们本地锁一样互斥性是最基本,但是分布式锁需要保证在不同节点的不同线程的互斥。可重入性:同一个节点上的同一个线程如果获取了锁之后那么也可以再次获取这个锁。锁超时:和本地锁一样支持锁超时,防止死锁。高效,高可用...转载 2019-02-27 18:00:20 · 860 阅读 · 0 评论 -
httpClient工具类
1. 概念 httpClient区分HttpComponent 是 apache-commons区别:在apache的官网上下载httpclient的jar包时,会发现它是在一个叫HttpComponent的项目下,这个HttpComponent是apache的顶级项目。而以前的commons的那三个包都是commons的项目下,原来,commons-httpclient 是 apache-co...原创 2019-01-14 15:20:21 · 298 阅读 · 0 评论 -
关于xstram忽略不知元素两种处理方法
项目pom文件中Xstram引入 &lt;dependency&gt; &lt;groupId&gt;com.thoughtworks.xstream&lt;/groupId&gt; &lt;artifactId&gt;xstream&lt;/artifactId&gt; &lt;version&am原创 2018-12-14 18:01:39 · 973 阅读 · 0 评论 -
spring JavaMailSender 发送邮件
配置JavaMailSenderImpl类** * @Configuration 表示是配置类 * @ComponentScan("com") 需要扫描的包路径 * @PropertySource("classpath:mail.properties") 需要加载的配置文件 */@Configuration@ComponentScan("com")@PropertySourc..原创 2018-12-03 22:07:58 · 666 阅读 · 0 评论 -
Ubuntu 中nginx使用详解
xshell使用管理员连接ubuntuUbuntu选择用户登录设置ubuntu14 设置可以选择账户登录账户:切换到root用户: sudo -s设置密码:sudo passwd rootcd /usr/share/lightdm/lightdm.conf.d/编辑 50-ubuntu.conf文件, 增加greeter-show-manual-login=true开...原创 2018-11-21 16:24:30 · 2645 阅读 · 0 评论 -
redis缓存以及集群详解
redis的安装以及启动windows环境到官网下载zip的安装包如果不安装redis服务就需要启动redis-service.exe可执行文件如果不想每次启动就安装redis服务安装 :redis-server --service-install --service-name redis2 (redis2是服务的名称)安装并指定日志级别: redis-server -...原创 2018-11-15 17:19:42 · 2268 阅读 · 0 评论 -
java多线程基础
转自:http://www.mamicode.com/info-detail-517008.html目录(?)[-]一扩展javalangThread类二实现javalangRunnable接口三Thread和Runnable的区别四线程状态转换五线程调度六常用函数说明使用方式为什么要用join方法七常见线程名词解释八线程同步九线程数据传递 本文主要讲了java中多线程的使用方法、线转载 2018-01-02 16:57:57 · 366 阅读 · 0 评论 -
mysql子查询总结
一、子查询定义 定义: 子查询允许把一个查询嵌套在另一个查询当中。 子查询,又叫内部查询,相对于内部查询,包含内部查询的就称为外部查询。 子查询可以包含普通select可以包括的任何子句,比如:distinct、 group by、order by、limit、join和union等;但是对应的外部查询必须是以下语句之一:select、insert、update、delete、set或 者d转载 2017-12-06 17:15:25 · 518 阅读 · 0 评论 -
mysql 的查询
一、mysql查询的五种子句 where(条件查询)、having(筛选)、group by(分组)、order by(排序)、limit(限制结果数) 1、where常用运算符: 比较运算符 > , < ,= , != (< >),>= , <= in(v1,v2..vn转载 2017-12-08 11:23:20 · 252 阅读 · 0 评论 -
Java中使用mongodb实现增删改查
在java中使用MongoDB数据库 Java安装要想在 Java 程序中使用 MongoDB,需要先确定是否安装了 MongoDB JDBC 驱动,并且要在机器上安装了 Java。查看 Java 教程来确保在机器上安装好 Java。下面来介绍如何安装 MongoDB JDBC 驱动。从路径 Download mongo.jar 处下载 jar转载 2017-04-20 16:57:24 · 924 阅读 · 0 评论 -
spring 定时器的配置
spring 定时器的配置使用原创 2017-04-18 16:22:34 · 537 阅读 · 0 评论 -
shiro框架的详细配置及使用
shiro框架的详细配置及使用原创 2017-04-18 15:12:37 · 3180 阅读 · 0 评论 -
Map集合中遍历的几种方式
在Map集合中values():方法是获取集合中的所有的值—-没有键,没有对应关系,KeySet():将Map中所有的键存入到set集合中。因为set具备迭代器。所有可以迭代方式取出所有的键,再根据get方法。获取每一个键对应的值。 keySet():迭代后只能通过get()取key entrySet():Set<Map.Entry<K,V>> entrySet() //返回此映射中包含的映转载 2017-04-11 15:18:56 · 375 阅读 · 0 评论 -
servlet和ajax的交互(jsp页面)
前端jsp页面$.ajax({ type : “POST”, //提交方式 url : “password?action=change”,//路径 data : { “oldPassword” : oldPassword, “newPassword”:newPassword,原创 2017-04-01 14:06:41 · 744 阅读 · 0 评论 -
Java中集合大全解析
本文仅分析部分原理和集合类的特点,不分析源码,旨在对java的集合类有一个整体的认识,理解各个不同类的关联和区别,让大家在不同的环境下学会选择不同的类来处理。Java中的集合类包含的内容很多而且很重要,很多数据的存储和处理(排序,去重,筛选等)都需要通过集合类来完成。首先java中集合类主要有两大分支:(1)Collection (2)Map先看它们的类图:(1)Collection(2)Map转载 2017-04-07 11:24:39 · 1547 阅读 · 0 评论 -
poi导出excel
poi导出excel工具类工具类 package com.huaxia.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; imp原创 2017-03-24 11:33:43 · 193 阅读 · 0 评论 -
Java获取全部参数
Java–获取request中所有参数的方法 我们通常用到request获取某个参数的方法:String value=request.getparameter(“key”); 如果想要获取request中所有的参数呢? request中有两种方法可以实现: 1、request.getParameterMap();复制代码 Enumeration enu=request.getParam原创 2017-03-28 10:08:30 · 1255 阅读 · 0 评论 -
System里getProperty 方法获得系统参数
Java 中System里getProperty 方法获得系统参数 偶尔在酷壳看文章,看到有大神写代码里面有一行 System.getProperty(“os.name”) ,当时就打开自己的Eclipse试了一下,发现竟然出现结果是Windows 7,真是我的系统名,于是上网找了一下,在Java 官方API中找到支持的可以获得的操作系统的参数的 key 列表,具体如下:转载 2017-04-17 14:42:50 · 645 阅读 · 0 评论 -
java读取TXT文件的方法
java读取TXT文件的方法java读取txt文件内容。可以作如下理解:首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西既然你使用了FileInputStream转载 2017-05-25 15:33:38 · 377 阅读 · 0 评论 -
mybatis
MyBatis动态SQL之增、删、改、查操作MyBatis动态SQL之增删改查操作概述MyBatis动态SQL支持动态SQL之查询动态SQL之插入动态SQL之删除动态SQL之更新概述在实际的场景中,经常会遇到动态SQL的增、删、改、查问题,这里就必要说明何谓动态SQL,我们举一个实际的例子,比如,在一个web工程中,经常会有一个搜索框,并且在搜索之前通常会进行一个关键词的过滤,比如可以转载 2017-06-07 09:12:00 · 336 阅读 · 0 评论 -
redis操作string 、list 、map 对象
一、操作string 、list 、map 对象1、引入jar:jedis-2.1.0.jar 2、代码/** * @param args */ public static void main(String[] args) { //连接redis服务 Jedis jedis = new Jedis(“192.168.88.15”,转载 2017-10-10 15:41:29 · 2968 阅读 · 0 评论 -
java操作redis: 将string、list、map、自定义的对象保存到redis中
一、操作string 、list 、map 对象1、引入jar:jedis-2.1.0.jar 2、代码/** * @param args */ publi转载 2017-10-10 15:33:32 · 596 阅读 · 0 评论 -
ajax异步获取数据后动态向表格中添加数据的页面
因为某些原因,项目中突然需要做自己做个ajax异步获取数据后动态向表格中添加数据的页面,网上找了半天都没有 看到现成的,决定自己写个例子1、HTML页面[html] view plain copy print?<!doctype html> <html> <head> <meta charset=“utf-8”> <title>xx信息查询</title> <scr转载 2017-09-18 16:32:33 · 4154 阅读 · 0 评论 -
springmvc+shiro+maven 实现登录与权限授权
Shiro是Shiro 是一个 Apache 下的一开源项目项目,旨在简化身份验证和授权。1:shiro的配置,通过maven加入shiro相关jar包[java] view plain copy print?&amp;lt;!–shiro–&amp;gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.apache.shiro&amp转载 2017-09-18 14:51:13 · 6678 阅读 · 3 评论 -
spring的Quartz配置
概念: 1、Job 表示一个工作,要执行的具体内容。此接口中只有一个方法 void execute(JobExecutionContext context)2、JobDetail JobDetail表示一个具体的可执行的调度程序,Job是这个可执行程调度程序所要执行的内容,另外JobDetail还包含了这个任务调度的方案和策略。3、Trigger代表一个调度参数的配置,什么时候去调。4、Sc转载 2017-08-18 10:21:19 · 209 阅读 · 0 评论