瞭望塔
码龄10年
关注
提问 私信
  • 博客:113,376
    问答:126,514
    239,890
    总访问量
  • 29
    原创
  • 692,154
    排名
  • 9
    粉丝
  • 0
    铁粉

个人简介:咸鱼在咸也是鱼

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:湖北省
  • 加入CSDN时间: 2014-12-09
博客简介:

墨者的博客

查看详细资料
个人成就
  • 获得27次点赞
  • 内容获得8次评论
  • 获得73次收藏
创作历程
  • 2篇
    2019年
  • 11篇
    2018年
  • 23篇
    2017年
成就勋章
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring架构
  • 搜索
    elasticsearch
创作活动更多

超级创作者激励计划

万元现金补贴,高额收益分成,专属VIP内容创作者流量扶持,等你加入!

去参加
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

MapStruct属性复制框架学习笔记

Java中DO,VO,DTO结构一样,但在意义上或者说功能上不一样,DO定义实体,VO定义视图层数据返回,DTO用于查询实体参数,通常进行转化可以自写setter/getter方法或者使用BeanUtils的属性复制方法(运行期利用反射),具体原理可以查看源码或者百度。MapStruct是同学推荐的一个开源工具,是在编译期生成对应的实体类来完成属性复制,使用方便,这里做个简单的笔记...
原创
发布博客 2019.08.17 ·
1559 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

log4j2在SpringMVC中的使用

在看开源druid数据库连接池时,了解到druid不依赖log组件但会根据当前环境选择一种合适的log实现,默认顺序为log4j->log4j2->slf4j->common-log->jdkLogging,druid介绍了log4j2在springboot中的使用,发现确实很方便,在springmvc中简化了监听器的配置,接入也很方便,步骤如下: 1、...
原创
发布博客 2019.03.05 ·
2033 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

SSM框架controller只要引入其他类就会报404错误

答:

@RequestBody

回答问题 2019.01.10

InnoDB,5项最佳实践

一、关于count(*)知识点:MyISAM会直接存储总行数,InnoDB则不会,需要按行扫描。 潜台词是,对于select count(*) from t; 如果数据量大,MyISAM会瞬间返回,而InnoDB则会一行行扫描。 实践:数据量大的表,InnoDB不要轻易select count(*),性能消耗极大。常见坑:只有查询全表的总行数,MyISAM才会直接返回结果,当加了w...
转载
发布博客 2018.10.09 ·
471 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

SpringBoot整合Swagger问题整理

1、swagger版本与springboot版本本项目使用的是Swagger版本是2.7.0,该版本对应的spring版本是4.3.10,所使用的SpringBoot版本在1.5.6.RELEASE版本左右都是可以的。一般版本差距太大才会导致冲突。2、按步骤导入jar包,添加配置类后,启动时未报错,但访问http://localhost:8080/swagger-ui.html时页面显示空...
原创
发布博客 2018.09.11 ·
3529 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

分布式缓存(一)——认识缓存

    1、缓存:是存储在计算机上的一个原始数据复制集,以便于访问。缓存在不同的场景有着不同的意义,采用的技术手段也不一样。不涉及操作系统和硬件的缓存,根据在软件系统中所处位置的不同,缓存可分为:客户端缓存服务端缓存网络中的缓存    根据规模和部署方式缓存也可分为:单体缓存缓存集群分布式缓存    2、为什么使用缓存?    最主要的因素是用户体验。用户体验是主观的且注重实际应用,被使用者的状态...
原创
发布博客 2018.06.05 ·
1294 阅读 ·
0 点赞 ·
0 评论 ·
8 收藏

二进制字节数组与十六进制字符串间的转换

       在加密算法中,经常会遇到将加密后得到的二进制字节数组转16进制字符串后返回;在解密算法中,则需要将字符串转二进制然后解密;下面将列举常用的几种转换方法,在文末会给出几种常用加解密算法示例。        1、二进制数组转十六进制 /** * 将二进制转成16进制,加密时用(方式之一) * * @param bytes 加密得到的二进制字节数组 ...
原创
发布博客 2018.05.24 ·
7627 阅读 ·
2 点赞 ·
0 评论 ·
6 收藏

DispatcherServlet理解

    DispatcherServlet是前端控制器设计模式的实现,主要用来拦截请求并进行职责的分派,从前端请求发起到返回执行了一系列的调度处理,主要处理过程如下:    (1)捕获请求,通过web.xml中配置url-pattern拦截指定请求    (2)通过HandlerMapping获取适当的Handler即Controller执行并返回    (3)若配置有拦截器,则会在handler...
原创
发布博客 2018.05.22 ·
534 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

Spring事务配置——图解说明

Spring事务配置可以总结为下图:图片地址:https://www.processon.com/view/5af992d6e4b05352c2baf19a
原创
发布博客 2018.05.14 ·
630 阅读 ·
1 点赞 ·
1 评论 ·
1 收藏

java并发编程读书摘要

一、基础概念了解    1、上下文切换:CPU通过时间片来循环执行任务,时间片用完会切换到下一个线程,但是会保存当前状态,任务从保存到再加载的过程就是一次上下文切换。    2、减少上下文切换的方式:      无锁并发编程:避免竞争锁造成的上下文切换      CAS算法:Compare and Swap,核心方法compareAndSetInt      使用最少线程:避免创建不必要的线程  ...
原创
发布博客 2018.04.28 ·
240 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

线程池监控——自定义线程池

    如果在系统中大量使用线程池,则有必要对线程池进行监控,方便在出现问题时,可以根据线程池的使用状态快速定位问题。可以根据线程池提供的参数进行监控,常用属性如下:    taskCount:线程池需要执行的任务数量    completedTaskCount:已完成的任务数量    largestPoolSize:线程池曾经创建过的最大线程数量,可以推测出是否达到corePoolSize和Ma...
原创
发布博客 2018.04.27 ·
1941 阅读 ·
0 点赞 ·
0 评论 ·
3 收藏

实战java高并发程序设计读书概要整理

一、要了解的基本概念    1、同步和异步:形容一次方法调用,同步要等待返回继续执行;异步调用不需等待返回就可以继续执行    2、并行和并发:多个任务一起执行,并行是同时执行;并发是交替执行也可能是串行执行    3、临界区:用来表示一种公共资源或共享数据,每次只能一个线程访问    4、阻塞和非阻塞:形容多线程之间的相互影响,阻塞是因为某个线程抢占了资源而导致其他线程被挂起,非阻塞则表示线程之...
原创
发布博客 2018.04.19 ·
257 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

无锁算法-CAS

    要实现无锁(lock-free)的非阻塞算法有多种实现方法,其中CAS(Compare and Swap)是一种有名的无锁算法。        CAS(Compare and Swap),即比较并替换,实现并发算法时常用到的一种技术,是用乐观锁技术实现的一种无锁(lock-free)算法。当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的...
原创
发布博客 2018.04.19 ·
1796 阅读 ·
0 点赞 ·
1 评论 ·
3 收藏

ssm整和问题,求大神解答

答:

context:property-placeholder 属性加载在Spring容器启动时会加载属性配置文件且只加载一次,如果在mybaties加载前已经加载过属性文件那这里就读取不到了,
最简单的解决办法就是写死在这里或者这里的配置加载置前

回答问题 2018.01.09

List排除、去重与equals和hashCode方法重写

目前,对于List集合去子集和去重经测试对应两种不同的实现,去子集是直接采用集合类提供的RemoveAll()方法;去重是采用HashSet作为中介处理。首先看一下两种方式的实现:1、RemoveAll(Collection c)使用list.removeAll(list1);通过查看该方法源码可以知道,会先遍历list1然后判断list中是否包含该对象,继续查看contains方法,会发
原创
发布博客 2018.01.08 ·
3678 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

《Learning Redis》学习笔记二:服务器功能

Redis除了提供key-value存储还提供了以结构化方式存储数据的语义,能够以同样的语义在程序中例如map/list等中存储信息。以下主要探讨redis的提供的一些功能,这些功能使得redis相对于数据存储更像是框架构建:1、Real time message(实时消息)Redis虽然不存储信息,但是支持消息的实时发送和接收,多个消息是以消息队列按顺序发送的。redis提供了publi
原创
发布博客 2017.12.15 ·
328 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

《Learning Redis》学习笔记一:基础介绍

Redis是面向key-value存储速度最快的NoSql数据库之一,既可基于内存也可持久化。作为key-value数据存储,在一些非功能性需求中主要有以下特点:1、数据集插入快,无异常2、随机读:所有keys放内存因此读取速度非常快,Redis使用虚拟内存将keys存内存,将最小最近使用的values放磁盘来避免内存消耗3、容错性和负载均衡:采用主从拓扑结构,master-slave
原创
发布博客 2017.12.15 ·
393 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

java 日期类型参数如何传入

答:

SimpleDateFormat转化一下String成java.util.Date就行了

回答问题 2017.11.30

spring容器中bean不在同一个文件下的引用问题

答:

applicationContext.xml中引用tailorbird-spring-hibernatedb.xml

回答问题 2017.11.21

springboot启动访问页面报错

答:

项目是可以启动的,访问接口大部分限制了post请求是不能直接在浏览器上发起请求的

回答问题 2017.11.16
加载更多