- 博客(199)
- 资源 (3)
- 收藏
- 关注

原创 Docker部署Spring Boot项目
Docker已经火了好几年了,容器化越来越流行,作为一个想要奋进的小程序媛,那肯定得搞起来啊。这篇博客是第一次部署Spring Boot项目的一个记录,也没啥关键技术点,不过对于新手来说应该有用的,因为我也是作为新手来部署才记录的这么简单详细的。话不多说,开干!尝试了两种场景,一种是简单尝试,还有一种是在比较正常的开发流程中的使用,都一一摆开吧。平常我们部署,可能使用Spring Boot内嵌...
2020-02-25 15:06:53
1487

原创 Spring boot配置XSS防御过滤
后端接口要做XSS攻击防御,从网上查一下,有很多防御方式。对于什么是XSS攻击,网上也有很多解释。本篇博客就针对自己项目需要做下记录。框架:前后端分离、Spring Boot场景:后端接口参数不定,有@RequestBody形式接收,有@RequestParam形式接收,所以会有不同处理。下面贴上代码:过滤器:public class XssFilter implements...
2018-07-30 19:26:22
18484
8
原创 记录一次ApplicationContext打入jar包后getBean空指针问题
项目中有两个服务,PC和H5,各自的工程代码里都有Service包。后来做代码优化,将service的包抽出来做了一个jar包,PC和H5的服务各自引用该jar包。原本service包在各自服务内部的时候没有问题,抽出来jar包再引用后就发现,使用ApplicationContext.getBean方法时,ApplicationContext报空指针,以下为项目中的代码结构以及解决方法。 在framework-common的jar包中有一个SpringContextUtil...
2021-12-13 17:16:30
2263
原创 IText导出PDF(一)
最近要开发一个导出PDF的功能,将调查公司的征信报告以PDF的形式下载,并包含页眉、页脚、添加水印、图表、表格合并等功能。整个PDF文件导出来有接近2M的大小,完整内容大概有20多页,也是费了好几天劲儿开发的功能,就记录下里面的一些注意点。...
2020-11-15 17:09:13
611
原创 Mycat配置文件解析
Mycat比较重要的配置文件有三个,分别是server.xml、schema.xml和rule.xml。server.xml server.xml是配置Mycat系统参数的,包括sql统计、sql解析长度、事务开关、端口号、是否采用Zookeeper协调切换,以及Mycat用户密码等信息。<?xml version="1.0" encoding="...
2019-03-22 18:21:09
676
1
原创 Mycat基本概念
1、逻辑库 逻辑库是Mycat创建的虚拟库,不同于MySQL的物理库。这个逻辑库是针对Mycat来说的,一个逻辑库可能会连接多个物理库,和MySQL物理库并不一一对应。2、逻辑表 存储在逻辑库中的,用于给应用提供数据的表称为逻辑表。逻辑表可以是经过数据分片,分布在不同的分片库中的表;也可以是不经过数据分片,只存在在一个分片库中的表。(1)、分片表...
2019-03-22 17:32:16
356
1
原创 Mycat入门
很喜欢Mycat的开源宣言,这是一种态度,很端正的态度。 分布式系统的不断发展,也使得分布式数据库应用更加广泛,Mycat应运而生,为分布式数据库提供很多便利。 Mycat是基于Amoeba和Cobar的,2014年Mycat开源社区在上海举行的“中华架构师”大会上对外宣讲,才使得也来越多的项目采用Mycat。从1.4版本后,Mycat脱离了...
2019-01-30 15:28:06
262
2
原创 Mac安装Jenkins
环境:MacOSJenkins版本:2.157安装步骤:1、下载Jenkins安装包http://mirrors.jenkins-ci.org/osx/latest下载完成后,直接双击打开,下一步安装即可。2、安装完成会自动打开浏览器,跳转到http://localhost:8080,并展示以下页面:3、按照说明找admin对应的密码串,路径是红字指示的文件;如果不...
2019-01-09 16:50:17
729
1
原创 Spring Cloud Netflix — Eureka Server Cluster
前言 Eureka Server作为服务注册中心,搭建集群还是相当必要的,Eureka Server搭建集群相当简单,只需要分别部署两台机器,两个Eureka Server相互注册即可。搭建像之前的Eureka Server一样,创建工程,添加配置文件。以两个配置文件,配置不同的域名。启动不同的配置文件,相当于启动不同的节点。 java -ja...
2018-06-23 10:35:01
401
原创 Spring Cloud Netflix — 服务消费
前言 题目本想写服务消费者,可是又怕太强调消费者三个字,因为在Eureka中服务消费者同样也可以作为服务生产者来提供服务,所以这里只写了服务消费。Eureka的服务消费有两种方式,一种是rest+ribbon的方式,另一种是Feign的方式。Rest+Ribbon 像上一篇博客所讲,创建一个Spring Boot项目,添加Ribbon的引用;如果是Spring Bo...
2018-04-22 17:56:11
331
3
原创 Spring Cloud Netflix — 服务注册与发现
前言 用过dubbo的朋友们都清楚,它作为一个分布式管理框架,大体可以分为三个部分:服务注册中心,服务生产者和服务消费者。Spring Cloud作为一站式分布式框架,自然也提供了相应的组件,来完成服务注册与发现的过程。没有用过分布式管理框架的同学,可以简单这么着理解:上篇说道微服务将以往的工程拆成了多个服务组件,服务组件之间调用管理的框架就是分布式框架。分布式管理框架可以使用服...
2018-04-15 17:13:20
580
原创 记录最近遇到的一些版本冲突问题
1、Missing dependency for field : javax.ws.rs.core.UriInfo comm.alibaba.fastjson.support.jaxrs.FastJsonProvider.uriInfo问题场景:在使用Eureka时,引入了spring-cloud-dependencies,版本为Dalston.SR4,在启动编译时产生了这个问题,并因为这个问题引...
2018-03-18 10:43:27
2390
1
原创 Spring Cloud Netflix — 简介
MicroService 简单来说,微服务架构的风格是,开发一组小型的服务来完成一个独立的应用系统,其中每个小型服务都运行在自己独立的进程中,并经常采用HTTP资源API这种轻量级的方式通信。这些服务围绕业务功能来构建,并且有全自动的部署机制来独立部署。这些微服务可以用不同的语言来编写,并且使用不同的数据存储机制,我们只需要对这些服务做最低下度的集中管理。根据上面这段对微服务的描...
2018-03-18 10:08:52
23244
3
原创 如何成为更好的自己
三年后,五年后,在未知的日子里,我会成为什么样的人呢?我曾经幻想过,自己有一套属于自己的心仪的大房子;有着一间自己的工作室,每天为了它而奔波;也有一辆喜欢的车子,可以去想去的地方。可是,一切的幻想在我看到一本书之后被打破了,这本书的观点我们常见的很多心理活动都不同。接下来这篇博客就从这本书说起,总结一下自己的变化,以及发现的自己新的需要改进的问题。做白日梦-->定目标
2017-08-28 20:41:23
1090
16
原创 Spring MVC的工作原理
组件 DispacherServlet:DispacherServlet是前端控制器,负责信息的接收和分发,Spring MVC工作过程中的所有的请求和返回信息都要经过DispacherServlet。 HandlerMapping:处理器映射器,它可以返回处理器的执行链,包括handler的信息。 HandlerAdapter:处理器适配器,通过该适配器找到具体执行任...
2017-08-23 11:00:03
583
7
原创 JVM的垃圾收集器
JVM中有不同的垃圾收集算法来进行垃圾回收,垃圾回收只靠算法是不行的,还需要相应的实现,垃圾收集器就是垃圾回收算法的实现。不同的虚拟机中,对垃圾回收算法的实现各不相同,以Hotspot虚拟机为例,提供了如下的几种垃圾收集器。 Serial收集器 ...
2017-08-20 15:49:39
526
4
原创 Redis的数据持久化方式
Redis和Memcached都是优秀的缓存工具,但是Redis相对于Memcached最大的优势在于Redis可以将内存中缓存的数据持久化到硬盘上,防止数据的丢失。Redis有两种持久化方式,分别是rdb快照持久化方式和aof日志持久化方式。 rdb快照持久化方式 就像它的名字一样,rdb快照持久化方式是对内存中的数据进行定期的快照,并将数据写入二...
2017-08-13 11:01:31
613
6
原创 JVM的垃圾回收机制
垃圾回收(Garbage Collection),是JVM中重要的一部分,Java和C++一个很大的不同就是Java中的垃圾回收机制。要了解JVM的垃圾回收机制,需要了解哪些对象需要回收?使用什么方式回收?下面就参考《深入了解Java虚拟机》做下总结,主要以HotSpot虚拟机为例。 如何确定对象是否该被回收? 判断对象是否该被回收有两种方式,引用计...
2017-08-03 10:42:58
517
4
原创 【NIO总结】—NIO中的通道
通道是由java.nio.channels包定义的,表示IO源与目标打开的连接。Channel类似于传统的“流”,只不过Channel本身不能直接访问数据,只能与Buffer进行交互。 通道是java.nio全新的东西,不是扩展也不是增强。通道可以理解为管道,比如要将一个大桶中的水排出,可以在桶壁上插上一个管道,使得水从管道中流出来,水就可以看成是数据。...
2017-07-22 21:12:31
691
13
原创 【NIO总结】—NIO中的缓冲区
NIO中的缓冲区是一个用于特定基本数据类型的容器。在java.io包中定义,所有缓冲区都是Buffer抽象类的子类。Buffer主要用于和NIO通道进行交互,数据可以从通道读入缓冲区,也可以从缓冲区写入到通道中。Buffer就像一个数组,可以保存多个相同类型的数据。 缓冲区的类型 根据数据类型的不同,缓冲区的类型分为以下几类,其中不包括boolean对应的Buffe...
2017-07-19 11:27:10
1022
13
原创 【NIO总结】—NIO简介
NIO是JDK1.4提供的新的IO API,可以代替原来标准的IO API。NIO被称为New IO,又称NonBlocking IO,它和原来的IO有同样的作用和目的,但是使用方式完全不同。NIO对文件的读写操作会更快,因为NIO是面向缓冲区的、基于通道的IO操作。 NIO和IO的区别 IO操作是面向流的,文件的读写都要...
2017-07-19 09:02:50
860
13
原创 Hibernate5.2.10使用SchemaExport创建数据库
Hibernate发布的几个版本对于使用SchemaExport导出数据库,变化的版本还是有点大的。现在使用的最新的发布版本是5.2.10,再使用SchemaExport手动导出数据库时代码已经变了,下面的代码就当给自己做个笔记的记录。 Hibernate3.0时,手动导出数据库是下面这样的: public static void main(String[] args)...
2017-07-15 20:26:41
3513
16
原创 Angular2中Http访问后端接口跨域问题
Http访问跨域问题是一个老生常谈的事情,之前web端用JSP的时候就会出现,不同系统之间在JS中调用服务时,就会出现跨域问题,因为要访问的服务发布在不同的服务中。当时的解决办法是使用JQuery封装的jsonp方式,它类似于JQuery的.json方法的使用方式,这里就不赘述了。 最近在做前后端分离,前端框架采用的Angular2,同样的好巧不巧的也遇到了跨域问题,如下
2017-07-15 20:12:45
6395
17
原创 Maven设置将src/main/java下的xml编译到classpath
这几天敲一个Hibernate的Demo,使用的是Hibernate.5.2.10.Final,发现了下面的一个错误,找不到Person.hbm.xml文件,原因是把Person.hbm.xml放到了实体类相同路径下,编译后找不到。 Exception in thread "main" org.hibernate.boot.MappingNotFoundExcept...
2017-07-15 19:47:49
2231
18
原创 MongoDB操作数据库
MongoDB是以文档为单位进行存储的,所以对数据的操作也是针对文档进行的,和关系型数据库一样,包括创建数据库,创建文档,对文档进行删除、修改、查询等。MongoDB的增删改,是以bson格式数据进行的,BSON是一种类似于JSON的二进制形式存储形式。 名词对比 database:database:在关系型数据库和MongoDB数据库中,datab...
2017-07-11 20:55:46
1029
15
原创 MongoDB简介与安装
MongoDB是比较流行的一款NoSQL数据库,是由C++语言编写的,一个基于分布式存储的开源数据库系统,它旨在为Web应用提供可扩展的高性能数据存储解决方案。MongoDB以文档作为存储单元,数据采用key-value方式存储。 NoSQL NoSQL是Not Only SQL的缩写,是非关系型数据库,与关系型数据库相对应。NoSQL用于超大规模数...
2017-07-05 09:28:21
457
13
原创 Java中的异常机制
异常机制是一门成熟的编程语言必不可少的一部分,Java同样也提供了成熟的异常处理机制,来保证程序的健壮性。Java中的异常机制主要依赖于try、catch、finally、throw、throws五个关键字实现的,不同的关键字对应不同的异常处理方式。异常 Java中程序的非正常情况分为两种,一种是错误,也就是Error;一种是异常,也就是Exception,他们都是继
2017-07-02 19:18:50
475
4
原创 Java中的集合
Java中的集合分为两大类,分别由两个接口派生出的:Collection和Map。Collection和Map是Java集合框架的根接口,这两个接口又包含了一些子接口或实现类。 Collection Collection接口下又有三个子接口:Set、Queue、List。Set是无序集合,集合中的元素不可重复;List是有序集合,集合中的元素可以重复;Qu...
2017-06-19 20:42:20
488
11
原创 Java中的==和equals方法
在刚接触Java的时候,经常出现用==来判断String是否相等,却判断不出想要的结果,而是只能用equals。当初的懵懵懂懂,后来不断的实践看理论再实践在看理论,终于理解了到底是怎么回事。Java的基础还是要扎实,特别是这种小知识点,虽然很微不足道,但是写代码过程中还是影响挺大滴。 ==判断 Java中有8种基本数据类型,当使用==来判断基本类型变量(且都是数值类...
2017-06-17 21:41:12
439
11
原创 JDK的安装和配置解析
运行Java程序,必须要安装JDK。JDK,即Java SE Development Kit,Java标准版开发包,是Sun公司提供的一套用于开发Java标准版应用程序的开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等。针对Java EE的开发,还提供了Java Platform,Enterprise Edition S
2017-06-17 11:05:48
509
7
翻译 MySQL的InnoDB引擎和MyISAM引擎对比
InnoDB 存储限制 64TB 事务 Yes 锁级别 Row 多版本并发控制 Yes 支持地理空间数据类型 Yes 支持地理空间数据索引 ...
2017-06-10 16:28:18
1229
7
原创 MySQL中的事务
MySQL事务是由MySQL引擎支持的,不同的MySQL的引擎对事务的支持程度不同。事务有四种特性,针对事务的隔离性,MySQL也实现了不同的隔离级别。 事务 事务有四个特性,通常被称为ACID,分别为原子性(Automicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 ...
2017-06-04 17:19:42
658
9
翻译 Spring-Data-Redis之RedisTemplate的使用
上篇博客是Spring-Data-Redis的实例,接着上篇的内容,这篇博客介绍一下RedisTemplate的详细方法。 功能介绍 大部分的用户都喜欢用RedisTemplate,它相应的包是org.springframework.data.redis.core。该模板实际是Redis模块的核心类,因为它的功能丰富。模板为Redis交互提供了高级抽...
2017-05-28 21:38:13
29942
9
原创 Spring-Data-Redis之实例Demo
了解完Spring Data Redis基本功能之后,根据快速开始的项目自己动手做了一个小Demo。使用的框架是Spring+Spring MVC+Mybatis;开发环境是Eclipse Kepler+JDK1.8+Maven3.2.3。 1、首先创建Maven工程 在pom.xml文件中引入需要用到的jar包,这里是引入了所有的jar包,可根据自...
2017-05-21 22:00:53
1853
4
翻译 Spring-Data-Redis之功能讲解
最近项目要用Spring集成Redis,发现好多人都在用Spring-data-redis,于是也在官网上学习了一下。国内的一些博客配置也很详细,但是各有千秋,还是参照官网的感觉简单一点,下面是官网地址:http://projects.spring.io/spring-data-redis/。一开始的版本是不支持Redis Cluster的,不过在1.7.x版本以上就开始可以支持集...
2017-05-14 21:41:35
2217
4
原创 Java类的加载、连接和初始化
当程序主动使用某个类时,如果该类尚未加载到内存中,JVM会通过加载-->连接-->初始化三个步骤将类加载到内存中,并初始化出该类的实例,提供给程序使用。虽然这个过程是三个步骤,但是在JVM中执行时,如果没有意外的话,它是会一下子执行完的。三个步骤的执行顺序如下图所示:
2017-04-23 19:53:09
1234
23
原创 关于Disconf配置文件下载位置的问题
前面几篇博客介绍了Disconf安装过程,以及Disconf实现的两种方式,本篇博客就记录一下源码学习过程中,有关配置文件下载位置的问题。因为项目中使用时出现读取Disconf下载的配置文件混乱问题,想找出问题的原因,所以这几天学习了一下源码,想知道配置文件到底是下载到哪里,又是从哪里读取的。 Disconf既可以管理配置文件,也可以管理配置项,这篇博客只说明配置文件的下载位置和读...
2017-04-16 11:18:32
7712
17
原创 Disconf注解式实现
前篇博客敲了一个简单的Disconf的Demo,这几天学习源码才发现,上一篇博客Demo实现方式是采用的XML配置方式,这篇博客介绍一下注解式实现方式,以及XML配置式和注解式的区别。参考内容是Disconf的官网:http://disconf.readthedocs.io/zh_CN/latest/index.html,介绍的角度会倾向于ITOO项目应用。 创建配置文件 ...
2017-04-09 21:16:28
4993
10
原创 Disconf使用简单Demo
上一篇博客完成了Disconf的搭建过程,搭建完成后就需要测试一下是否能真的投入使用,这篇博客就介绍一个小Demo,测试一下Disconf是否能连接上。 创建配置文件 在敲Demo之前,需要在Disconf上创建自己的APP,然后在APP的某个环境下创建配置文件,如下面截图中的流程,这里就简单创建了一个redis.properties,内容是redis的IP和端口号,Key...
2017-04-02 23:30:52
9589
7
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人