自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Anthony_1223的博客

但行好事,莫问前程。

  • 博客(51)
  • 收藏
  • 关注

原创 SpringBoot集成MyBatis+Activiti环境搭建及注意事项

    最近在研究工作流引擎Activiti,所以从搭建环境写demo开始说起。环境是JDK1.8+SpingBoot+MyBatis+Activiti    由于IDEA自己集成了SpringBoot的插件,因此如果采用IDEA去搭建环境,可以直接选择New一个SpringBoot的项目,然后根据自己需要勾选选项。比如Web,SQL,NOSQL等一些与SpringBoot集成的组件。这样会自...

2018-01-17 19:10:49 21435 19

原创 重构·改善既有代码的设计《一》

何谓重构重构(名词定义):对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本。重构(动词定义):使用一系列重构手法,在不改变软件可观察行为的前提下,调整其结构。何时重构事不过三,三则重构。第一次做某件事时只管去做;第二次做类似的事就会产生反感,但无论如何还是可以去做;第三次再做类似的事时,就应该考虑重构了。添加功能时重构最...

2019-09-15 23:46:44 268

原创 Java读取Excel并生成Word&PDF

最近需要用Java处理Excel中的数据,并生成word和pdf格式的文档(其中word和pdf需要带背景图),所以在这里做下总结。使用技术:FreeMarker + easyexcel + jacob①FreeMarker大家应该会比较熟悉,一个模板引擎。②easyexcel 是阿里巴巴开源,用于快速、简单避免OOM的java处理Excel工具。②JACOB是一个JAVA-COM ...

2019-03-25 16:52:06 5067 2

原创 SpringBoot+EasyExcel实现Excel的导出

添加依赖(alibaba开源的一个处理excel的工具包,github地址:https://github.com/alibaba/easyexcel)<dependency> <groupId>com.alibaba&a

2018-12-26 17:11:58 3263 1

原创 Tomcat部署项目的几种常见方式

Tomcat部署项目的几种常见方式直接将web项目放到tomcat的webapps目录下这种是最常用的方式,tomcat的webapps目录是tomcat默认的应用目录,当服务器启动时,会加载这个目录下的应用。如果想修改这个默认目录,可以在conf下的server.xml文件中修改host标签里的appBase属性。修改server.xml文件。<Context path...

2018-10-22 21:32:19 263

原创 InfluxDB基本概念

InfluxDB是一个由Go写的开源的时序数据库,适用于处理和分析资源监控数据的场景。与传统数据库中名词概念的区别: InfluxDB中的名词 传统数据库中概念 database 数据库 measurement 数据库中的表 points 表中的一行数据 InfluxDB中特有的概念 Point由时间戳(time)...

2018-09-10 16:58:06 341

原创 涵盖学习、工作以及面试的资料

git 的奇巧淫技Java核心知识库Python3网络爬虫实战Spring boot 整合 Activiti Modeler系统设计入门算法-Java实现包括但不限于Java,Scala,JavaScript,工具类,JVM,IO,线程,源码解析,SQL,网络,数据结构与算法,中间件google guavaNginx入门教程RESTful API 设计参考Java生态圈常用技...

2018-09-08 00:22:02 390

原创 git commit如何撤销?

git commit之后,push到远程之前,如何撤销?git reset –soft 版本号 仅仅是撤销commit操作,但并撤销git add,此时本地改动的代码仍然保留。比如git reset –soft HEAD^,HEAD^表示上一个版本,也可以写成HEAD~1,如果是进行了两次commit,都想撤销,可以写HEAD^2)git reset –hard 版本号 ...

2018-09-08 00:05:49 1152

原创 google guice入门

juice是google的一个轻量级的DI框架,下面上代码。首先是几个接口public interface UserService { void process();}public interface LogService { void log(String msg);}public interface Application { void wo...

2018-09-06 23:55:39 546

原创 centos6.5安装Python3&&PyInstaller步骤

安装依赖环境yum -y install gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel下载Python3wget https://www.python.org/...

2018-09-03 23:33:01 1568

原创 Python中关于json.load()和json.loads(),json.dump()和json.dumps()区别

json.load()是从文件中读出json格式的字符串;with open('text.json','r',encoding='utf-8') as f: print(json.load(f))控制台打印结果:{ "name": "anthony", "sex": "man" }json.loads()是将json格式的字符串转为字典类型。# -*- coding...

2018-08-31 17:26:48 1383

原创 Apollo部署注意事项

1.在实际部署时,如何从外部去指定数据库的配置(目前这些配置是在apollo提供的构建脚本buid.sh中指定的) ①apollo-adminservice和apollo-configservice的zip包解压后,分别在config目录下新建application-github.properties文件,在该文件中去指定configdb的配置。(adminservice和con...

2018-08-09 18:13:54 1406

原创 携程开源配置管理中心Apollo简介

一.为什么需要配置中心?       由于程序日益复杂,相应的配置也越来越多,对配置的期望也会变高(比如实时性,分环境管理),因此我们需要一个配置中心去管理我们的配置。二.Apollo是什么?       Apollo是携程框架部门研发的开源配置管理中心,能够集中管理应用在不同环境、不同集群的配置,配置修改后能够实时的推送到应用端,并且有关于权限管理、流程治理等功能。(一)Apollo支持四个维度...

2018-07-15 15:21:23 10039

原创 java -jar jar包路径 命令提示没有主清单属性

    由于工作上的需求,做了一个解析xml的工具类,需要提供给别人使用。我就将项目打成了一个jar,打算用「java -jar jar包路径 参数一 参数二」命令的方式执行。在自己测试的时候,发现一直提示没有主清单属性,意为找不到程序的入口。后来去查了查,发现是因为没有指定程序的入口类。    解决方法是:在pom.xml文件中添加如下配置(重点是<mainClass></ma...

2018-06-14 18:01:26 724

原创 单例模式

    单例模式:保证只能有一个该类的实例,并且对外提供获取该实例的方法。(核心:构造方法私有,并对外提供访问该实例的方法)    常见写法:懒汉式、饿汉式、枚举、静态内部类。饿汉式:懒汉式:静态内部类的方式:double-checked locking方式:枚举:...

2018-06-01 18:26:15 250

原创 访问服务器时出现java.IOException:打开的文件过多

应用部署在一台测试机器上(Linux),最近发现服务好像挂了。上去看了下打出来的日志,发现报错信息一个是java.net.SocketException,一个是Java.IOException,提示打开的文件过多。        后来去查了查:说是第一个是在错误影响到基础的TCP协议时会抛出,第二个则是在错误影响到I/O操作时抛出。        原因:操作系统中打开文件的最大句柄数受限所致,常常...

2018-06-01 18:17:02 6749 1

原创 Java中使用Mock测试

1、Mock的概念:    Mock一词是指“模拟,虚拟”的意思,所谓的Mock测试就是指在测试过程中,模拟出那些不容易获取或者不容易构造出来的对象,比如HttpServletRequest对象需要在Servlet容器中构造出来。2、Java中使用Mock    Mockito是用于Java中单元测试的一个Mock框架。下面是在SpringBoot中使用Mockito的代码    ...

2018-05-27 23:57:34 11247

原创 正则表达式

1、\d表示匹配一个数字,\w表示可以匹配一个字母或者数字2、.可以匹配任意字符,对于可变长的字符,*表示任意个字符(包括0个),+表示至少一个,?表示0个或1个,{n}表示n个字符,{n,m}表示n-m个字符。3、如果要做更精确的匹配,可以用[]表示范围,比如:    [0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线;    [0-9a-zA-Z\_]+可以匹配至少由...

2018-05-27 23:35:29 655

原创 Java代码中Date类型插入到mysql中出现时间不一致的问题

        今天在项目中遇到了一个问题,就是在Java中属性是util.date,表中对应的字段类型是datetime,然后Java代码插入到MySQL数据库中后,发现时间相差8个小时。后来去搜了下,发现是因为dbconfig配置文件中jdbc_url=jdbc:mysql://127.0.0.1:3306/wmp?useUnicode=true&characterEncodin...

2018-05-27 23:33:39 14683 1

原创 SQL中的逻辑删除和物理删除

在实际开发中基本都会有删除数据的需求,删除又分为逻辑删除和物理删除。下面说下二者的区别:    一、所谓的逻辑删除其实并不是真正的删除,而是在表中将对应的是否删除标识(is_del)或者说是状态字段(status)做修改操作。比如0是删除,1是未删除。在逻辑上数据是被删除的,但数据本身依然存在库中。对应的sql语句一般是这样的:update... set status/is_del=.....

2018-05-27 23:32:03 13021

原创 本地代码提交到Github上

第一步:cd到本地项目的根目录下。在控制台输入:git init第二步:将项目的所有文件添加至仓库中 git add .这个命令行会将当前路径下的所有文件添加至仓库中。第三步:将add的文件commit到仓库 git commit -m "注释语句"第四步:去github上新建一个仓库,把地址拷下来。第五步:git remote add origin 自己仓库的地址第六步:上传代码至远程仓库 gi...

2018-05-27 23:27:15 239

原创 代码规范

自己简单总结下代码规范吧,可能并不是很完整。想到哪儿就写到哪儿吧。1、驼峰命名法,其实这个也没什么可说的了。 类名/接口名 :一般是首字母大写,后面跟着的单词首字母大写。比如:User、UserList; 方法名:首字母小写,后面跟着的首字母大写。比如:getUserList()、getPulicAccountInfo();普通的变量名也是如此。 常量:一般全大写...

2018-05-27 23:24:32 1063

原创 关于Spring/SpringBoot在静态工具类中注入Service的解决方案

    最近遇到了需要在工具类中注入Service,由于工具类中方法一般都是静态的,所以要求该属性也要是静态的(Service)。但是由于Spring/SpringBoot正常情况下不能支持注入静态属性(会报空指针异常)。主要原因在于:Spring的依赖注入实际上是依赖于Set方法进行注入值的,Spring是基于对象层面的依赖注入,而静态属性/静态变量实际上是属于类的。解决方案一:给当前的工具类加...

2018-03-17 14:59:32 8053 1

原创 随便写写

        序员是一个普通的后端开发工程师,他身材不高,戴着眼镜,一部乱蓬蓬的头发。背的虽然是黑色双肩包,可是又脏又破,似乎十多年没有补,也没有洗。        序员一到公司,所有同事便都看着他笑,有的叫道,“序员,你的上传接口又出bug了!”他不回答,对stackoverflow里问,“上传中断如何断点恢复。”便排出九个赏金。他们又故意的高声嚷道,“你一定又抄袭了人家的开源代码了!”序...

2018-02-09 22:46:47 216

原创 JSON.parse()和JSON.stringify()区别

 1、JSON.parse()用于从一个字符串中解析出JSON对象。比如:   var str = '{"name":"zhangsan","age":"23"}';JSON.parse(str);    结果:    Object:        name:"zhangsan"        age:"23"        _proto_:Object2、

2018-02-09 22:45:55 235

原创 @RequestBody的使用

@RequestBody注解是用来处理前台的请求参数是一个json串的情况。比如一个ajax请求中,data的值用的是JSON.stringify(),这里的data就是一个json字符串,而不是对象。           var user = {};        user.name="zhangsan";        user.age=23;        $.ajax({...

2018-02-09 22:45:14 284

原创 Activiti

Activiti流程引擎的配置文件是名为activiti.cfg.xml的XML文件。 从Activiti5.12开始,SLF4J被用作日志框架,替换了之前的java.util.logging,所有的日志都转发给SLF4J允许使用你选择的日志实现。   Activiti是基于Apache V2协议发布的。Activiti需要运行在JDK1.6或以上版本。开始步骤:Activiti的下载...

2018-02-09 22:43:10 515

原创 Activiti工作流引擎设计的库表说明

      之前activiti与SprinBoot做了集成,在启动应用的时候,会自动在数据库中生成对应的25张表。下面来看一下这25张表所表示的含义。如下图所示: act_re_*:re表示的是respository。这个前缀的表包含了流程定义和流程静态资源(图片、规则等)act_ru_*:ru表示的是runtime。这些运行时的表,包含流程实例、任务、变量、异步任务等运行中的数...

2018-02-09 12:04:13 428

原创 SpringMVC的九大组件

1.MultipartResolver:用于处理文件上传请求,处理方法将普通的request包装成MultipartHttpServletRequest,后者可以通过直接调用getFile方法获取file。如果是多个文件,那么可以调用getFileMap得到一份file结构的map。2.LocaleResolver:LocalResolver是个接口,用于从request中解析出Local...

2018-02-09 12:00:43 738

原创 Github设置ssh key以及提交代码

一.Github设置ssh key注册完Github账号之后,在桌面上或者找个文件夹,右键git bash here 进入控制台窗口。输入命令:cd ~/.ssh 然后回车,查看是否有ssh key然后输入 ssh-keygen -t rsa -C"输入你的email",回车,然后提示你输入github的账户和密码。生成ssh key之后去提示的路径文件夹下面找到id_rsa.pub文件,打开。复...

2018-02-09 11:56:55 1763

转载 IDEA常用快捷键汇总

【常规】Ctrl+Shift + Enter,语句完成“!”,否定完成,输入表达式时按 “!”键Ctrl+E,最近的文件Ctrl+Shift+E,最近更改的文件Shift+Click,可以关闭文件Ctrl+[ OR ],可以跑到大括号的开头与结尾Ctrl+F12,可以显示当前文件的结构Ctrl+F7,可以查询当前元素在当前文件中的引用,然后按 F3 可以选择Ctrl+N,可以快速打开类Ctrl+S...

2018-02-09 11:52:23 172

原创 什么是JPA

    JPA是Java Persistence API的简称,中文名Java持久层API,是JDK5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。和其他ORM框架不同的是:JPA只是一种标准、规范,而不是框架,JPA本身没有具体的实现。    Sun公司引入JPA规范主要出于两个原因,一是为了简化JavaEE和JavaSE应用开发工作;二是为了整合OR...

2018-01-18 23:58:19 562

原创 工作流和工作流引擎

一、工作流:        工作流(workflow)是指业务过程的部分或整体在计算机应用环境下的自动化,是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。工作流主要解决的问题是:为了实现某个业务目标,利用计算机在多个参与者之间按照某种预定的规则自动传递文档、信息或者是任务。wfmc(工作流管理联盟)给出的定义是:工作流是指一类能够完全自动执行的经营过程,根据一系列的过程规则,将文档、信...

2018-01-11 22:43:46 2361

转载 深入理解Java中的fail-fast机制

1、fail-fast简介:    所谓的fail-fast:快速失败。其实是Java中一种集合的检测错误的机制。当某个线程在对collection进行迭代时,不允许其他线程对该collection进行结构上的修改。    假设现在有两个线程,线程1和线程2,线程1通过Iterator在遍历集合A中的元素,在某个时候线程2修改了集合A的结构(是结构上面的修改,而不是简单的修改集合元素的内容...

2018-01-11 22:43:04 370

原创 Java删除集合中元素的正确姿势

1、使用foreach的话,在删除完元素之后,接着遍历就会抛异常。如下图所示:因为foreach实际的实现原理是迭代器的方式去遍历,会去调用Itr对象的hasNext()和next()方法。在该类的next和remove方法中,都会去调用checkForComodification()方法,该方法内部就做了一件事,判断modCount(实际修改的次数)和expectedModco...

2018-01-11 22:42:41 561

原创 Python中的数据类型

Python中有五种标准的数据类型:①数字②字符串③列表④元组⑤字典1、数字类型(Number)    数字数据类型存储数字值,当为其分配值时,将创建数字对象。例如:var1 = 10 var2 = 20可以使用del语句删除对数字对象的引用。其语法为:del var del var1,var2Python支持三种不同的数值类型:·int(有符...

2018-01-11 22:42:10 352

原创 Python环境搭建和IDE

    Python适用于多平台,包括MacOs、linux、windows等。可以去Python官网或者百度搜索Python自行下载安装,环境变量的配置和其他的一样,不做赘述。    集成开发环境(IDE)推荐使用Pycharm:这是一款由JetBrains出品的Python IDE,支持macos、windows、Linux系统。功能:支持调试、语法高亮、Project管理、代码跳转、智能...

2018-01-11 22:41:46 282

原创 关于list中抛出 java.lang.UnsupportedOperationException

       今天在将数组转为list时,用到了Arrays.asList(),然后使用到add方法,抛出了异常。后来发现是因为通过以上方法返回的list其实是AbstractList。该List内部使用final修饰的一个数组来实现的,并未实现list的remove()和add()方法,只是简单的抛异常。相当于是只读的,并不支持增删操作。因此解决方法是再将该列表拷贝到Arraylist中,Arr...

2018-01-11 22:39:27 411

转载 JS/JQ获取地址栏中的链接参数

1、假设页面的地址是这个样子的。http://caibaojian.com/p/165,那么我要获取最后的一个数字165,可以通过这样的代码。var url = window.location.href;var idnex = url.substring(url.lastIndexOf("/")+1);但是这样子有缺陷,假如我获取到的地址不是这样子的形式,而是http://caiba...

2018-01-11 22:30:59 2643

原创 css中关于color、background、backgroud-color的区别

color是定义字体的颜色;backgroud可以定义背景的一切内容,包括颜色、图片以及图片位置;background-color只能定义背景的颜色;

2017-11-15 23:51:52 1503

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除