- 博客(49)
- 问答 (3)
- 收藏
- 关注

原创 mybatis-plus的使用
前言最近公司有一个小的项目让我来开发,因为整个后端只有我一个人,所以自由度还是很高的,所以在搭建项目的时候就在想不完全按照公司其他项目的架构来搭建(其他项目都是分布式架构)以求进行一个快速的开发。说道快速开发,springboot就不得不提了,用的也是比较熟悉了,单就springboot的话实际上更多的是对一个项目配置的简化,而内些service、dao层的操作实际上还是想以前ssm一样的。...
2018-12-29 17:30:38
9342
1

原创 详解TCP/IP
一、背景TCP/IP中文译为传输控制协议/因特网互联协议。是当前流行的网络传输协议框架,从严格意义上讲它是一个协议族,因为TCP、IP是其中最核心的协议,所以把该协议族成为TPC/IP。二、TCP /IP协议的分层框架应用层:应用层是我们经常接触使用的部分,比如常用的http协议、ftp协议(文件传输协议)、snmp(网络管理协议)、telnet (远程登录协议 )、smtp(简单邮件传...
2018-12-09 18:23:12
193

原创 快速上手SpringBoot需要一些脚手架以及其他开源项目记录
renren-fast是一个轻量级的Spring Boot2.0快速开发平台,其设计目标是开发迅速、学习简单、轻量级、易扩展;使用Spring Boot、Shiro、MyBatis、Redis、Bootstrap、Vue2.x等框架,包含:管理员列表、角色管理、菜单管理、定时任务、参数管理、代码生成器、日志管理、云存储、API模块(APP接口开发利器)、前后端分离等。项目地址:https://...
2018-11-14 09:23:07
1470

原创 redis安装+主从+哨兵模式和坑。
一、安装版本:3.2.111.解压 2.进入解压后的目录 执行 make 3.执行 make install (这一步需要root权限的用户执行)上面的操作后基本上一个单节点的redis就算是安装好了,进入src目录 执行redis-server 就可以成功启动redis。二、主从模式(master/slaver)我的理解: 主从的作用或者说优势大概有两点 1.备份...
2018-09-06 19:13:08
2081

原创 java集合总结(基于jdk1.6)
MapHashmap 底层由数组和单向链表实现,put的时候计算key的hashcode,找到数组的对应位置,然后通过单向链表entry来维护。内部类entry中通过next维护单向链表。 tip1:初始化hashmap的时候,根据需求初始化数组大小initialCapacity(默认16),loadFactor(默认0.75),即map可以put initialCapacity*load...
2018-06-11 17:12:09
466

原创 Spring MVC 统一异常处理的两种方式
方式一 通过@ControllerAdvice 和 @ExceptionHandler 方法。方式二实现HandlerExceptionResolver
2017-11-30 16:56:42
677

原创 cas单点登录遇到 supplied credentials: [admin+password] 问题原因以及解决办法
cas 单点登录 配置 解决supplied credentials: [admin+password] 问题
2017-09-22 16:41:04
2585

原创 Proxy和InvocationHandler实现自己的AOP
spring Aop实际上也是通过动态代理机制进行面向切面编程的,在java里可以通过实现InvocationHandler接口建立自己的动态代理类,然后通过Proxy建立动态的代理类的对象。首先InvocationHandler接口中只有一个方法Object invoke(Object proxy, Method method, Object[] args) throws Throwablepro
2017-09-15 17:53:11
570

原创 spring创建多例
最近遇到一个了问题,简单的描述一下。按模块调用接口,比如a、b、c、d四个模块每个模块2~3个接口,一笔交易最多四个模块,所以在调用时每个模块开启一个线程。那么问题来了模块线程在主线程中是通过注解自动注入的(模块线程依赖其他的bean,所以不能new),即模块线程单例的。多线程环境下,把接口调用需要使用到的参数从主线程传到模块线程时,虽然在主线程中每一次都new一个新的参数,但因为模块线程是单例
2017-08-16 19:48:11
1304

原创 页面间传值 ,本地存储sessionStorage和localStorage
页面间传值的方法各有不同,今天学习了一种新的传值方式那就是 ——-sessionStorage 和 localStorage 作为本地储存他们可以用来代替cookie的一部分存储功能,他们比cookie存储量更大。比较实用。本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着sessi
2017-04-01 11:13:25
2269

原创 保存密码后防止用户名密码反显
保存用户名密码后,浏览器显示时会找到页面的第一个type=password 的输入框来显示密码,这个输入框的上一个文本输入框显示用户名。但是一些新增,修改页面需要填写密码在密码输入框时,会造成打开页面后反显出保存的信息比如新增页面代码如下:<label for=''>用户名称:<input name='usrName' id='usrName' maxlength='15' t
2017-02-09 14:50:22
1746
原创 记录一次阿里云服务器被挖矿的解决精力
被挖矿的服务器是我所负责一个项目uat环境的服务器,开始我只有服务器普通用户的账号和密码,收到报警信息后就登录查看,但是已经登录不了了看来密码被修改过。联系运维同事要到了root密码然后登录,首先就是将我之前使用的账号密码进行重置(原账号密码相同难怪被攻击)然后top查看一下服务器进程以及负载情况,发现在我所使用的的用户下存在一个异常的进程,所谓异常进程就是资源消耗多有不知道是干啥的。然后先...
2020-02-03 17:08:05
375
原创 Log4j,Log4j2,logback,slf4j日志框架之我所知道的一切随便写写
日志框架SLF4J说到日志不得不先说SLF4J,简单日志门面,对应的英文为Simple Logging Facade,是存取日志的标准接口,包括slf4j、log4j、jdk logging api和apache common-log等具体实现。简单一点来说呢,他就是一个日志框架的接口,没有具体的日志实现,好处呢就是项目打日志的时候直接使用它,如果需要换具体的实现对代码也没有侵入只需要更换j...
2019-12-19 13:46:19
274
原创 springboot项目结构浅析
用了很久的springboot了,每次生成出来的结构都是一样的,各个模块都是干啥的呢?src/main/java:主程序入口 TinyContractApplication,可以通过直接运行该类来 启动 Spring Boot应用src/main/resources:配置目录,该目录用来存放应用的一些配置信息,比如应用名、服务端口、数据库配置等。如果应用了Web模块,因此产生了 static目...
2019-10-29 21:05:25
228
原创 总控模板设计使用想法
我对于总控的理解是,对于一个系统来讲,稳定性总是最重要的,保证系统的稳定性不外乎两点,监控和控制,意思其实就是尽早发现问题和及时解决问题,例如 当系统出现压力时,Dubbo的服务调用会因为执行超时而重试,这会导致请求数增多,系统压力更大,从而可能出现雪崩效应。这时候通过总控的一些功能就可以良好的解决对于总控模板日志的记录我设想的日志应用场景可以在一些业务场景,利用我们的分库策略将涉及到的...
2019-10-29 17:00:28
185
原创 redis实现流量控制策略
好久没写博客了…最近公司组织了一次技术大赛,内容大概是基于dubbo-filter的机制完成消费者调用服务提供者的前置控制。其中有一项是流量限制,内容如下流量控制,实现服务级别的限流策略 优化已有限流代码:目前总控已有对领单接口进行限流的功能,优化这部分代码到流量控制功能的统一架构下 限流策略 1:支持对服务进行限流策略 1 设置,可按天或者按小时限制服务请求的次数,到达限制次数...
2019-10-18 15:56:48
2393
原创 Java代码是怎么运行的?
一、运行方式java有很多种运行方式,比如很常见的在开发的中使用开发工具运行或者通过命令行的方式运行,甚至也可以通过双击jar和在网页中运行,当然整个运行过程中离不开jre也就是java运行环境。实际上,JRE 仅包含运行 Java 程序的必需组件,包括Java 虚拟机以及 Java 核心类库等。二、虚拟机对于java跨平台的特性实际上就是jvm的功劳了,他在硬件和代码中间做到了转换,我们...
2019-03-26 15:50:57
496
原创 maven使用plugin安装本地jar
在引入oracle驱动时,由于一些原因无法从公共仓库中获取,所以在打包的时候没法直接打到jar的lib中(当然如果把lib打到jar之外就没问题了)解决办法就是添加一个plugin <!-- 本地maven仓库插件 --> <plugin> <groupId>org.apache.maven.plugin...
2019-03-18 15:49:59
3250
原创 索引
索引是什么?在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。索引提供指向存储在表的指定列中的数据值的指针,然后根据您指定的排序顺序对这些指针排序。数据库使用索引以找到特定值,然后顺指针找到包含该值的行...
2019-02-17 18:28:03
200
原创 java序列化以及serialVersionUID的作用
内存中的数据对象只有转换二进制流才可以进行数据持久化和网络传输,将数据对象转换成二进制流的操作叫做序列化,反之叫做反序列化。java原生的序列化方式是实现Serializable接口,这个接口非常特殊,没有任何方法,只是起到标识的作用。java序列化保留了对象类的元数据(类、成员变量、继承类信息等),以及数据对象,兼容性最好,但是不支持跨语言,而且性能一般。使用java序列化时,建议设置ser...
2019-01-09 16:25:12
703
原创 github项目记录
一、单点登录/权限smart:https://github.com/coder-huang/sso-shiro-cas.git二、轻量级分布式定时任务重复执行解决方案ShedLock:https://github.com/lukas-krecan/ShedLock
2018-12-06 13:50:08
212
1
原创 maven tomcat插件记录
<plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.1</version> <configur
2018-12-06 13:16:16
194
原创 mybatis拼SQL时使用ifelse
<select id="list" resultType="com.bootdo.system.domain.UserDO"> select `user_id`,`username`,`name`,`password`,`dept_id`,`email`,`mobile`,`status`,`user_id_create`,`gmt_create`,`g...
2018-12-05 14:22:34
2765
1
原创 Spark DataFrame批量修改数据类型
rdd的算子分成Transformation和action算子,其中Transformation算子的操作每次都会生成一个新的rdd,所以在进行数据转换的时候如果单个列进行转换的话性能消耗比较严重,所以批量的操作进行都要减少执行次数。 val colNames = df.schema.fieldNames val cols = colNames.map(f => df(f).cas...
2018-11-19 19:09:55
5294
1
原创 Java8 并行流多线程操作
并行流是一个把内容分成多个数据块的,并用不同的线程分别处理每个数据块的流。下面通过简单的示例介绍一下顺序流和并行流的特点。后面后时间在详细记录。并行流: public static void main(String[] args) { List&lt;String&gt; list = new ArrayList&lt;&gt;(); for(int i ...
2018-11-12 16:59:52
3732
原创 使用Druid连接SQLite时查询表报ResultSet closed
java.sql.SQLException: ResultSet closed at org.sqlite.core.CoreResultSet.checkOpen(CoreResultSet.java:69) ~[sqlite-jdbc-3.8.11.2.jar:na] at org.sqlite.jdbc3.JDBC3ResultSet.getFetchDirection(JDBC3Res...
2018-11-09 15:53:35
2740
2
原创 dubbo服务治理和监控相关
dubbo作为一个成熟的分布式服务框架,自然提供了服务监控和服务治理的相关功能。服务治理:dubbo-admin服务监控:dubbo-monitorincubator-dubbo-ops官方提供的项目,部署很简单git clone https://github.com/apache/incubator-dubbo-ops.git选择master分支。里面会有dubbo-admin(...
2018-09-30 17:34:25
1281
原创 java发送邮件添加附件-附件名有问题解决。
添加附件时为setFileName需要指定utf-8的编码格式,否则解析不出来会随机给一个类似下面名称的附件名tcmime.1882.2250.7267.bin正确的set方式:MimeUtility.encodeText(file.getName(), "UTF-8", "B")下面是整个发送邮件的例子: public static boolean sendMail(...
2018-09-14 14:44:57
3795
原创 Spark常用算子总结
Spark常用算子总结算子分类 大方向分类 1)Transformation 变换/转换算子:这种变换并不触发提交作业,完成作业中间过程处理。 Transformation 操作是延迟计算的,也就是说从一个RDD 转换生成另一个 RDD 的转换操作不是马上执行,需要等到有 Action 操作的时候才会真正触发运算。2)Action 行动算子:这类算子会触发 SparkCont...
2018-07-18 14:21:45
748
原创 spring-boot部署(读取外部配置文件)
背景 项目架构基于springboot和dubbo,部署上service端以jar包的方式部署,web端以war包部署(交给运维团队,不使用springboot内置的tomcat),项目使用git进行版本管理。 部署时对于配置文件(需要启动时就加载的,比如jdbc,mq,redis等文件)的处理,其实问题还是比较经典的。基本上大部分项目应该都会遇到,处理方式可能各不相同。一、sprin...
2018-06-28 11:25:11
6332
原创 springboot测试
一、测试controller 使用TestRestTemplate发送restful的请求。详细可见https://www.jianshu.com/p/c9644755dd5e@RunWith(SpringRunner.class)@SpringBootTest(classes = WebApplication.class, webEnvironment = SpringBootTes...
2018-06-22 09:18:43
545
原创 springboot集成dubbo时@Transactional问题
背景: 以前项目使用spring集成dubbo,dubbo通过xml配置文件的方式配置服务,使用@Transactional没有问题,后来通过dubbo的@service注解简化配置,但是发现有@Transactional注解的服务不能通过dubbo的@service发布服务,消费端通过@Reference找不到服务就报错了。问题分析: 通过百度发现在使用@Transactional时sp...
2018-06-07 13:47:18
4504
1
原创 Spring Boot Maven多模块项目搭建
Spring Boot(2.0) Maven多模块项目搭建简介 版本号 说明 创建时间 创建人 1.0 创建 2018-05-15 吴桂镇 一、搭建环境-编译器:Eclipse Oxygen.1a (4.7.1a)-jdk:1.8-Maven : 3.0-操作系统:win10二、项目创建...
2018-06-07 13:28:34
6935
原创 Spring 的监听事件 ApplicationListener 和 ApplicationEvent 用法
spring事件(application event)
2017-11-22 16:42:53
9877
1
空空如也
elasticsearch 有没有相当于数据库 = 操作的匹配符
2017-11-28
spring创建多例对象的时候,默认对照xml中bean的id会是什么呢?
2017-11-23
java加密,密文长度可以小于等于明文长度吗?
2017-09-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人