- 博客(59)
- 资源 (1)
- 收藏
- 关注
原创 xshell部署java项目
如果是在windows服务器上部署,可直接使用windows电脑提供的远程桌面连接,然后将打包好的项目发布到相应的位置,并启动Tomcat服务(如果使用的是Tomcat服务器的话) 但是如果想要部署到linux机器上,则需要借助Xftp和Xshell配合使用部署环境。一 使用工具介绍:Xftp为可视化工具,主要用来拷贝文件。xshell则通过输入命令来对服务器进行操作,...
2020-10-15 17:05:51
3031
原创 API网关的实现--1 java构建微服务的实现
一丶 简介假设你正在为购物应用开发一个手机客户端,好像你需要实现一个产品详情页,用来展示任何给定的产品的详细信息。举个例子,下图展示了你在Amazon的android手机客户端上滚动看到的产品详情页。Amazon手机客户端上的产品详情页即使这是一个智能手机上的应用,产品详情页一样展示了很多信息。例如,不仅有基本的产品信息(如名称、描述和价格),而且这个页面还
2020-09-22 16:58:12
695
原创 集合类源码深入理解总结
基本功能Arrays & Collections常用的方法//Arrays.javapublic static List asList(T... a) { return new ArrayList<>(a);}注意这里返回的ArrayList不同于我们平时使用的ArrayList,如下源码(是Arrays的内部类,而不是java.util.Arr...
2020-08-31 22:10:43
321
转载 利用itext将html文件转化pdf文件
一:IText组件介绍iText是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。将报告数据生成HTML文档,然后通过控制CSS样式单,调用iText组件,将html打印成为A4规格的静态pdf文件。该方案的优势是:Html文件是文本文件,便于模块化 彻底摆脱旧版报告系统严重依赖word模板和windows服务器 纯粹的java技术组件,兼容性好二:IText的引入使用1.maven包导入
2020-08-28 14:10:45
7440
转载 BIgDecimal的用法,及与各类数据类型的转换
前言:Java中float的精度为6-7位有效数字。double的精度为15-16位。我们都知道浮点型变量在进行计算的时候会出现丢失精度的问题。如下一段代码:System.out.println(0.05+0.01);System.out.println(1.0-0.42);System.out.println(4.015*100);System.out.println(123.3/100);输出:0.0600000000000000050...
2020-08-24 11:06:55
3228
原创 Map集合的存储机制,源码分析以及冲突解决
HashMap的存储与实现 我们如果要保存一组对象,用我们之前学过的知识,会使用对象数组,但鉴于数组的局限性,数组长度一经定义就不能改变,所以我们使用链表、队列等数据结构操作,但是很麻烦。类集框架就是一个动态的数组,但不受数组长度的限制。HashMap允许key值为空,(在方法containsValue(Object value):如果指定值key=...
2019-08-01 10:17:58
1540
原创 jenkins安装部署及项目构建部署详解
使用jenkins部署项目,可以说在一定程度上解放了人力反复部署的困扰,但它的功能绝不仅于此。下面开始jenkins的学习之旅一.jenkins介绍Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1、持续的软件版本发布/测试项目。 2、监控外部调用执行的工作。二.为什么要使用jenkins(jenkins的优点) 1 、j...
2019-06-03 15:59:26
2659
原创 jenkins,nginx,gateway(网关)联合部署应用
由于公司最近引用网关API,jenkins热部署以及nginx代理转发的一整套服务体系,相较于以前系统分散,同样的功能需要多次维护,管理维护都十分麻烦,同时也造成了效率不高等问题,所以本文就这些技术问题加以总结,如有任何问题,欢迎指出!!一:引入网关gateway的原因以及jenkins,nginx的作用 为何引入网关? 1首先,什么是网关?API网关:能提供...
2019-06-03 13:23:00
5673
原创 API网关的实现---3 zuul网关Filter处理流程及异常处理
上一篇介绍了java网关Zuul的简单使用,进行请求路由转发和过滤器的基本操作。这一篇主要看一下它的过滤器Filter的工作流程及异常处理。首先看到Filter的四个方法,FilterType,filterOrder,shouldFilter,run。filterType代表过滤类型PRE: 该类型的filters在Request routing到源web-service之前执行。...
2019-05-31 16:41:01
536
原创 API网关的实现--2 springboot使用zuul
配置pom<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.3.5.RELEASE</...
2019-05-31 16:34:21
975
2
转载 创建GitHub账号并建立私人项目体系
首先你得注册一个自己的GitHub账号,注册网址:https://github.com/join有了自己的账号以后,就可以进行登录,开始创建一个新的项目创建一个新的项目,填写项目名称,描述创建完成之后,跳转到下面的页面,下面红框中的网址要记住,在后面上传代码的时候需要使用接下来,我们需要先下载Git,这里最好下载最新版本的Git,这里附上我下载的Git2.6.2的网...
2019-05-16 15:32:53
1408
原创 并发编程二--Callable,Future和FutureTask使用详解
最开始学习线程,都知道创建线程有2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。 若需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。 自从Java 1.5开始,就提供了Callable和Future,Callable接口代...
2019-05-14 14:06:57
678
转载 关于字符编码,你需要知道的
字符编码的问题看似很小,经常被技术人员忽视,但是很容易导致一些莫名其妙的问题。这里总结了一下字符编码的一些普及性的知识,希望对大家有所帮助。还是得从ASCII码说起 说到字符编码,不得不说ASCII码的简史。计算机一开始发明的时候是用来解决数字计算的问题,后来人们发现,计算机还可以做更多的事,例如文本处理。但由于计算机只识“数”,因此人们必须告诉计算机哪个数字来代表哪个特定字符,例如6...
2018-09-14 14:05:10
625
原创 springBoot深入理解--启动原理
Spring Boot学习 Spring Boot是为了简化Spring应用的创建、运行、调试、部署等而出现的,使用它可以做到专注于Spring应用的开发,而无需过多关注XML的配置。简单来说,它提供了一堆依赖打包,并已经按照使用习惯解决了依赖问题---习惯大于约定。 注:Spring Boot默认使用tomcat作为服务器,使用logback提供日志记录。一:使...
2018-07-26 15:17:01
5508
1
原创 springmvc中的数据绑定(前后台传递)
一:前后端数据的传递过程中肯定会涉及到数据的绑定,因为一个个参数单独接收很费事且代码效率会大大降低,下面就对各种类型的数据进行绑定。重点:表单大量数据(多对象)的传递绑定1、基本类型数据绑定在controller中写一个int参数绑定的方法,@RequestMapping("/int")@ResponseBodypublic String getInt
2018-02-05 10:33:35
13228
3
转载 windows下 安装 rabbitMQ 及操作常用命令
windows下 安装 rabbitMQ 及操作常用命令rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。它遵循Mozilla Public License开源协议,采用 Erlang 实现的工业级的消息队列(MQ)服务器,Rabbit MQ 是建立在Erlang OTP平台上。1.安装Erlang 所以在安装rabbitMQ之前,需要先安装Erlang 。小编使用的是o
2018-01-18 16:07:25
312
原创 正则表达式详解
1.什么是正则表达式??正则表达式定义字符串的搜索模式 ,正则表达式的英文全称是regular expression。搜索模式可以是简单字符,固定字符串或包含描述模式的特殊字符的复杂表达式的任何内容 ,由正则表达式定义的 pattern 可以同时匹配一个或多个,或者一个都没匹配到。正则表达式有两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束,下面进行语法的详细介绍:...
2017-08-25 16:01:54
1012
原创 svn上问题解析
1.解决svn Authorization failed错误 MyEclipse中项目更新时,开始弹出 用户名,密码框需要输入,关掉之后就再也不会出现弹出框,而是直接报错解决svn Authorization failed错误解决办法:在本地tortoiseSvn---下面的setting文件点开---saveData --认证数据 右边的clear all
2017-07-28 15:43:38
401
原创 各种时间类型的转换及比较
我们常用的时间类型不外乎 Date类型,但是想要获取更加精确的时间,则需要DateTime或者Timestamp类型一、String与Date(java.util.Date)互转 1.1 String -> Date String dateStr = "2010/05/04 12:34:23"; Date dat
2017-07-21 16:50:54
1658
原创 apache---poi读取和创建excel文件
JAVA中操作excel有两种比较主流的工具包:JXL和POI。JXL只能操作Excel 95,97,2000也即以.xls为后缀的excel。而poi支持office的所有版本,即可操作后缀为.xls和.xlsx两种格式的excel。POI介绍: ApachePOI是用Java编写的免费开源的跨平台的 Java API,Apache POI提供API给Java程...
2017-07-21 15:13:37
621
原创 Mybatis -- Mybatis-Generator自动生成Dao、Model、Mapping文件及其使用
Mybatis属于半自动ORM,在使用这个框架中,工作量最大的就是书写Mapping的映射文件,由于手动书写很容易出错,我们可以利用Mybatis-Generator来帮我们自动生成文件Model,Mapping以及Dao层相关文件。 1、相关文件关于Mybatis-Generator的下载可以到这个地址:https://github.com/mybatis/generator/r
2017-03-28 16:16:52
2116
原创 JSON数据及与其他各类数据转换详解
一、JSON的标准格式里面的是一个对象,如果是多个对象,则用逗号间隔,即{},{},这样就组成了一个对象序列,为了辨别开始和结束,则需要加上[]才能进行传递,则实际传递的形式应该是[{},{}],如果只要传递一个对象,则{}的形式就可以了。接下来就是对象属性的表现方式了,属性必须在”“里面,属性与值之间用:隔开,属性之间用,来分隔,如果属性的值为数组,则用[]包括起来,这样实际传递的数据格
2017-03-23 18:00:08
7070
原创 jquery ajax详解
一:首先要明白前后台数据交互的几种方式:1:最简单的标签a href="xxx.xxx?username='liufukin'">请求服务器a>112:用的最多的表单"xxx.xxx" method="post/get"> 用户名:type="text" name="username"> 密码:type="password" name="userpwd"
2017-03-23 17:02:17
2007
原创 SpringMVC---实现文件上传与下载
摘要: 在项目中涉及图片上传的时候 我们往往不会把图片直接以二进制的方式存进数据库,往往是把上传的图片保存在服务器中 ,数据库只存图片在服务器中的路径。如果图片量过多的话 还可以在开一台图片服务器这里可以提高用户的体验。一:SpringMVC关于上传文件的配置: bean id="multipartResolver" class="org.s
2017-03-21 17:58:22
1489
原创 spring-hadoop之操作hbase
Srping对于属于java web技术的程序员都不会陌生,jdbcTemplate更是用的熟之又熟,下面我们来认识一下Spring大家庭的新成员:Spring-data-hadoop项目。Spring-hadoop这个项目应该是在 Spring Data 项目的一部分(Srping data其余还包括把Spring和JDBC,REST,主流的NoSQL结合起来了)。其实再一想,Sprin
2017-03-15 14:07:26
5060
转载 apache--log4j.properties的配置及加载应用
一、介绍 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务 器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。 Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志
2017-03-15 09:37:58
620
原创 spring框架---动态切换多数据源
项目中我们经常会遇到多数据源的问题,尤其是数据同步或定时任务等项目更是如此。spring动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据。 Spring2.x
2017-03-14 15:35:49
2179
1
原创 mybatis框架---分页插件PageHelper的使用方法
以前自己写分页时,需要自己写sql语句,并且进行分页判断之后目前Mybatis提供了分页插件,使用起来非常简便一、首先,在spring-mybatis.xml中是这样配置:(数据源,分页拦截器)id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> property nam
2017-03-13 15:25:36
17867
1
原创 MyBatis原理及使用详解
一直都在使用mybatis,可以只对其中的原理不是很理解,所以整理了以下几点:1.介绍一下mybatis的框架原理,以及mybatis的入门程序,实现用户的增删改查,2.mybatis优缺点以及mybatis和hibernate之间存在着怎么样的关系,3.mybatis与spring整合时的使用。什么是mybatis?MyBatis 本是apache的一个开
2017-03-07 13:09:22
914
原创 使用Springmvc出现问题及解决办法
几种常见的控制器Spring MVC的核心就是控制器,而在我们写控制器的时候,Spring MVC有那么多的控制器,我们选用哪一个才是最佳选择呢?Spring MVC 的控制器主要都直接或间接的实现了Controller 接口。主要有以下几类控制器。1.简单控制器(AbstractController),适合于无参数或者少参数的访问,如我们要一子显示所有留言,显示所有帖子等
2017-03-07 10:32:00
1151
转载 springmvc常用注解
Spring MVC的常用注解1.@Controller@Controller用于标记在一个类上,使用它标记的类就是一个SpringMVCController对象。分发处理器将会扫描使用了该注解的类的 方法,并检测该方法是否使用了@RequestMapping 注解。@Controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是真正处理请求的处理器。单
2017-03-06 16:08:00
438
转载 spring mvc入门详解以及Post乱码处理
2.1、Spring Web MVC是什么Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。 另外还有一种基于组件的、事件驱动的W
2017-03-02 10:22:13
1214
转载 深刻理解Socket编程2
Java最初是作为网络编程语言出现的,其对网络提供了高度的支持,使得客户端和服务器的沟通变成了现实,而在网络编程中,使用最多的就是Socket。像大家熟悉的QQ、MSN都使用了Socket相关的技术。下面就让我们一起揭开Socket的神秘面纱。Socket编程一、网络基础知识(参考计算机网络) 关于计算机网络部分可以参考相关博客:
2016-10-22 22:59:15
586
转载 java中Serializable序列化的理解
我对Java Serializable(序列化)的理解和总结博客分类: Java技术JavaOSSocketCC++ 1、序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自
2016-10-22 22:09:16
612
转载 java中volatile关键字的使用
Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主
2016-10-22 21:36:09
493
转载 Java对象克隆(Clone)及Cloneable接口、Serializable接口的深入探讨
Part I没啥好说的,直接开始Part II吧。 Part II谈到了对象的克隆,就不得不说为什么要对对象进行克隆。Java中所有的对象都是保存在堆中,而堆是供全局共享的。也就是说,如果同一个Java程序的不同方法,只要能拿到某个对象的引用,引用者就可以随意的修改对象的内部数据(前提是这个对象的内部数据通过get/set方法曝露出来)。有的时候,我们编写的代码想让
2016-10-22 20:37:37
739
1
转载 sizeOf计算空间大小的总结
sizeof,看起来还真不简单,总结起来还是一大堆的东西,不过这是笔试面试中出现比较频繁的,我也是考过才觉得很重要,有些规则如果不注意,还真是拿到一道题目摸不着头脑,所有总结一下,方面忘记的时候瞄一瞄,其中重点是struct的空间大小部分。关于sizeof的总结 1、sizeof的使用形式:sizeof(var_name)或者sizeof var_name 2、变量名可以不用括
2016-10-21 22:55:11
852
原创 java中常量池的理解
一:栈,堆以及常量池的概念: 1、栈区(stacksegment)—由编译器自动分配释放,存放函数的参数值,局部变量的值等,具体方法执行结束之后,系统自动释放JVM内存资源2、堆区(heapsegment)—一般由程序员分配释放,存放
2016-10-21 21:54:49
696
转载 并发编程一--线程池的原理以及使用
http://uule.iteye.com/blog/1123185一:线程池的介绍: 1.在什么情况下使用线程池? 1).单个任务处理的时间比较短 2).将需处理的任务的数量大 2 .使用线程池的好处: 1)提高系统性能,因为创建线程和清除线程的开销比较大。减少在创建和销毁线程上所花的时间以及系统资源的开销 ...
2016-10-14 22:35:44
645
转载 java中加载顺序详解
Java类静态域、块,非静态域、块,构造函数的初始化顺序字数611 阅读641 评论9 喜欢28对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序以此是 (静态变量、静态初始化块)>(变量、初始化块)>构造器。public class InitialOrderTest { // 静态变量 p
2016-10-14 21:13:16
457
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人