自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 资源 (2)
  • 收藏
  • 关注

原创 使用spring event事件通知机制做代码解耦

我们日常开发过程中经常会遇到一些代码逻辑不想耦合在一起,就想要解耦,这种情形下,我们可以使用spring的时间通知机制,方法如下:创建一个通知的事件消息体:@Datapublic class BannerTransferEvent extends ApplicationEvent { private BannerTransfer transfer; public BannerTransferEvent(Object source,BannerTransfer transfer) {

2022-03-04 17:10:16 688

原创 API接口定义的一次学习

对于API接口的设计,如果有这样一个功能。有个功能有两个业务要使用。里面需要用到5个参数:A,B,C,D,E对于A,B参数,两个业务方都能获取到,而对于C,D,E三个参数,两个业务的数据不一样,需要分别写死。像这种功能的设计,我原本的设计是,请求参数传入A,B,C,D,E参数,对于CDE参数,两个业务方自己写死参数,然后传入后端,这样后端只需要提供一个接口,然后拿到参数进行处理就好了。今天学到一种理念,对于这种方式的接口设计,尽量的设计个性化,所谓个性化就是,对于两个业务方分别设计一个接口,C,D,E

2022-02-17 21:32:10 490

原创 spring boot多数据库数据源启动报错“required a single bean, but 2 were found”的正确解决办法

报错Parameter 0 of method jdbcTemplate in org.springframework.boot.autoconfigure.jdbc.JdbcTemplateConfiguration required a single bean, but 2 were found: - primaryDataSource: defined by method 'dataSource' in class path resource [com/xxx/xxx/base/infra/con

2021-09-18 21:00:18 4817

原创 返回类型为泛型时,代码中将字符串结果强转为指定返回类型的实现

最近在写一个本地缓存+Redis缓存的工具,主要实现就是请求来了先从本地缓存拿数据,如果本地缓存没有数据或者数据已过期,就从Redis中拿数据,如果Redis中没有数据,或者数据过期,则根据用户实现的子类实现的初始化方法拿到应该初始化的数据的功能,由于缓存的子类实现有很多,而且每一个缓存的实现的返回类型等都不相同,所以在提供的获取方法时的返回值使用了泛型,而在Redis中存储数据时,由于不知道子类要缓存的具体数据类型是什么,所以就全部转成JSONString存储到Redis,这种就有一个问题,w为了方便使

2021-09-13 11:06:16 944 1

原创 一看就懂的IOC创建对象流程,以及循环依赖解决的三级缓存流程

这两天一直在看IOC容器在创建指定对象的流程,以及解决循环依赖的三级缓存流程,按照自己的理解画了个流程图,以及文字说明,如果有错误的地方欢迎指出:

2021-05-29 15:43:56 218

原创 《Redis设计与实现》全面知识整理

最近在看Redis的实现原理,看到《Redis设计与实现》这本书,发现这本书对Redis的讲解可以说是很透彻了,不仅从Redis的设计方案以及其各种功能是如何实现的,均有很清晰的讲解通过看这本书,能够很清晰的对Redis的整体结构有很清晰的了解。最近我花费了三四天将这本书的知识点整理出来了,希望能让大家对Redis的整体认识有一定提升。整理的是一个xmind文件格式,知识点很多,很多都合起来了,大家可以下载下来看看。示例图:Redis知识整合梳理:...

2021-02-22 18:14:16 190

原创 SpringBoot实现一个项目多模块,多主启动模块,每个模块多环境配置文件

我们在日常开发过程中,在新建一个项目中,我们经常会将一个项目按照功能性、模块等将一个项目分成多个子项目,这些子项目都包含在主项目中。对于Spring、SpringBoot中实现多模块化,网上有很多教程,这里就不在讲述了。本次主要讲的是如何在一个项目中能够有两个Application,即有两个启动类,启动不同的启动类,能够访问不同的功能,另外我们开发项目时,需要将配置分为开发环境、测试环境、生产...

2019-02-17 20:32:57 64318 9

原创 git使用

1.创建git仓库1)创建文件夹(名称最好全英文)2)切换到创建的文件夹3)执行 < git init > 命令,将当前目录设置为git仓库2.将文件放在仓库1)切换到仓库目录或其子目录2)创建目标文件3)执行命令 < git add <filename.suffix> > 将文件提交到仓库中的.git版本区中的暂存区4)执行命令 < gi...

2018-11-22 20:42:30 1282 1

原创 java面试总结(十)—— 常用技术介绍

对于面试,面试官总会对我们简历上的项目经历涉及到一些技术进行询问,大多让我们介绍一下技术的用途、特点等等,本文就提供一些常用的技术的简介,如果大家有一些想分享的,可以留言,我在添加。注:本文只提供一些应用技术的简单介绍,具体的一些特性,请大家查找相关资料深入研究。ZookeeperZooKeeper是一种为分布式应用所设计的高可用、高性能且一致的开源协调服务,它提供了一项基本服务:分布...

2018-05-29 17:16:19 5396 1

原创 java面试总结(九)—— 如何处理项目的高并发、大数据

1.HTML静态化 如果网站的请求量过大,我们可以将页面静态化提供访问来缓解服务器压力,能够缓解服务器压力加大以及降低数据库数据的频繁交换。适合于某些访问了过大,但是内容不经常改变的页面,如首页、新闻页等2.文件服务器顾名思义,文件服务器就是将文件系统单独拿出来提供专注于处理文件的存储访问系统,甚至于对个文件服务器。因为对于图片这种资源的访问存储是web服务最耗资源的地方,将文件服务器单...

2018-05-28 15:23:20 4956 1

原创 java面试总结(八)—— SQL优化、SQL军规、隐式转换

SQL优化对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。任何在Order by语句的非索引项或者有计算表达式都将降低查询速度应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如select id from t where num is null。任何在where子句中使用is n...

2018-05-24 18:22:51 1684

原创 java面试总结(七)—— Spring注解

@Controller用于标记在一个类上,声明注解的类是一个Controller,将该类交给Spring容器进行管理,可以使Controller定义更加灵活,可以不用实现Controller接口,请求处理的方法也更加灵活。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping注解。@Controller只是定义了一个控制器类,而使用@RequestM...

2018-05-23 18:24:30 3699 1

原创 java面试总结(六)—— Spring MVC

mvc模式M - Model 模型 模型(Model)的职责是负责业务逻辑。包含两层:业务数据和业务处理逻辑。比如实体类、DAO、servic等。V-View视图 视图(View)的职责是负责显示界面和用户交互(收集用户数据)。属于视图的组件是不包含业务逻辑和控制逻辑的JSPC-Co’ntroller控制器 控制器是模型层和视图层之间的桥梁,用于控制流程Spring MV...

2018-05-23 10:37:26 573

原创 java面试总结(五) —— Collection、List、ArrayList、LinkList、Vector、Set

CollectionCollection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection允许相同的元素而另一些不行。一些能排序而另一些不行。Java SDK不提供直接继承自Collection的类, Java SDK提供的类都是继承自Collection的“子接口”如List和Set。   所有实现...

2018-05-18 14:34:27 764

转载 java面试整理(四)—— HashMap、LinkedHashMap、TreeMap、Hashtable、HashSet和ConcurrentHashMap区别

HashMapHashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键(HashMap最多只允许一条记录的键为null,允许多条记录的值为null。)。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。HashMap中不允许出现重复的键(Key)Hashmap是非线程安全的,如果多个线程同时访问一个HashMap,可能会导致数...

2018-05-17 16:25:15 7242 2

原创 java面试整理(一)—— 小问题总结

1.&和&amp

2018-05-16 15:31:42 1089 2

原创 java面试整理(三)—— 内部类、静态内部类、成员内部类、局部内部类、匿名内部类

内部类,又称之为嵌套类,是在类中在定义另外一个类。内部类几乎可以处于一个类内部任何位置,可以与实例变量处于同一级,或处于方法之内,甚至是一个表达式的一部分。外部类:包含内部类的类 内部类的名字不允许与外部类的名字相同。因为在外部引用它时必须给出带有外部类名的完整名称(外部类名.内部类名) 外部类只能是public或者默认,不可以是protected之类;内部类访问控制符均可,也可使用a...

2018-05-16 14:54:39 573

原创 java面试整理(二)——final,finally,finalize

final,finally,finalize这三个看似一样,其实三个是完全不是一系列的东西。final该关键字是一个修饰语,用于修饰成员变量、类、类或对象的引用、方法。final修饰变量:final修饰变量说明该变量就是一个常量值,既可以是成员变量又可以是局部变量。其只能赋值一次,也就是说你不能在程序的任何地方在赋值后再修改该变量的值,如java.lang.Math类中的PI和E是fi...

2018-05-15 17:11:55 476

原创 MongoDB学习笔记(十三)——修改文档

在本篇博文中,我将演示MongoDB的修改文档。MongoDB shell在MonogDB 的官方文档中,提供的集合方法中,关于修改的方法有四个:findOneAndUpdate()、update()、updateOne()、updateMany()。从字面上大家应该就可以判断出其功能了:findOneAndUpdate():修改筛选出来的文档中的第一个文档,并返回,可以使用参数控制返...

2018-05-14 17:08:42 4840

原创 idea - springboot - No mapping found for HTTP request with URI [**] in DispatcherServlet

今天在布置项目时出现一个问题,就是我在一台新电脑上从git上下载一个SpringBoot项目,然后布置完成之后,启动成功,但是在访问首页登录页面时,报错如下:2018-04-28 15:46:34.457 INFO 596 --- [ restartedMain] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on ...

2018-04-28 16:00:25 16417 1

原创 MongoDB学习笔记(十二)——删除文档

有插入文档,就有需求要删除文档。MongoDB shell shell中删除文档很简单,其集合提供了一个remove()、deleteOne()、deleteMany()、findOneAndDelete()四个方法用于删除文档。我们首先看一下前三个方法的定义。db.collection.remove()方法有两种语法: 1.可以带一个查询文档和一个可选的justOne布尔值:...

2018-04-24 17:58:37 19237

原创 MongoDB学习笔记(十一)——添加文档

本篇博文开始讲解MongoDB的操作内容。首先先讲一下MongoDB的添加文档操作,在本篇博文中,将会从shell、js脚本、MongoDB Compass、java原生驱动、spring封装几个方面来讲解如何插入MongoDB文档MongoDB shell从前面的方法汇总的集合方法中,我们可以看到shell提供了三个插入方法:db.collection.insert() :...

2018-04-20 17:11:02 8912

原创 MongoDB学习笔记(十)——JAVA整合MongoDB:MongoDB Java Driver、spring-data-mongodb:mongoTemplate

本篇博文本来是打算在上一篇的当成其一部分写的。但是后来想了下还是另起一篇博文。该篇博文主要是介绍Java整合MongoDB,因为接下来讲MongoDB 的操作内容等的我会根据shell(因为服务器上的操作和shell一样这里就不讲了)、MongoDB Compass、java driver(mongo的java驱动)、mongoTemplate几个方面来测试,所以这里就先讲一下MongoDB ...

2018-04-18 18:09:33 10891

原创 MongoDB学习笔记(九)——Write Concern、getLastError、Read Concern、Read Preference

前面的博文把MongoDB的一些基础介绍,以及MongoDB的一些组件的使用等博文,从该篇开始,开始学习MongoDB的操作内容。首先我们需要了解一些内容写入关注(writeConcern)官方文档在前面的博文中,介绍了MongoDB shell现有的所有方法,我们经常看到有的方法可以传入一个参数:writeConcern(写入关注),所以在说明MongoDB增加数据操作之前,我们需要...

2018-04-17 13:44:47 5560

原创 MongoDB学习笔记(八)——操作汇总运算符、修饰符、聚合管道

上一篇我列举了MongoDB shell的所有的方法,该篇我将列举MongoDB的更新、查询等的所有操作符、管道聚合操作、管道聚合阶段、查询修饰语等。用作以后大家在使用MongoDB或学习MongoDB时可以使用该篇博文做个集中查阅的文章。查询和映射操作(Query and Projection Operators)原文链接查询选择器比较查询运算符 名称 描述...

2018-04-17 11:23:07 4077 3

原创 MongoDB学习笔记(四)——MongoDB基础定义

该篇博文是我在写后面的博文时,发现里面有很多MongoDB的基础的东西,如果大家不了解这些定义,可能会很迷惑,不知道说的什么,所以把该篇博文提前到第四篇,以便后面大家能够能够对后面的几篇博文有清晰的认识。连接(Connection)、数据库(Database)、集合(Collection)、文档(Document)是MongoDB的重要的基础组件,了解这些组件能够帮助大家对MongoDB的存储...

2018-04-13 13:40:47 22733 1

原创 MongoDB学习笔记(七)——MongoDB shell方法汇总

在写前面的博文的时候,我发现MongoDB shell提供了很多方法,其中MongoDB的很多方法也在其中,下面是我从MongoDB官网上查到的所有MongoDB shell的所有方法,当然,我不会对每个方法进行详细解释,因为太多了。我会将方法功能说明白,并且把官网连接挂在后面,有兴趣的可以点进去看一下。由于个人翻译水平有限,可能有些翻译文不及意,忘海涵!对于查看方法有一个小技巧,就是我们使用...

2018-04-12 17:54:58 3028 1

原创 MongoDB学习笔记(六)——MongoDB配置用户账号与访问控制

前面的几篇博文,大概介绍了如何安装MongoDB,以及介绍了MongoDB shell与MongoDB Compass。新安装的MongoDB是没有账号设置的,也就是说任何人都可以连接进MongoDB,这是非常不安全的。所以我们需要对MongoDB进行设置账号,来控制对数据库的访问。admin数据库admin数据库是MongoDB安装时就会自动创建的,如下图,是我用MongoDB Co...

2018-04-11 09:36:39 31951 3

原创 MongoDB学习笔记(五)——MongoDB shell 与 MongoDB Compass

该篇博文主要讲解下MongoDB的连接、配置、管理工具MongoDB shell 以及MongoDB官方提供的一个图形工具MongoDB CompassMongoDB shell1.MongoDB shell 连接MongoDB shell 是MongoDB自带的一个交互式的JavaScript shell,我们可以使用MongoDB shell 来访问、配置、管理MongoDB数据库...

2018-04-09 16:33:02 11937 1

原创 MongoDB学习笔记(三)——安装与配置MongoDB(Linux)

前一篇博文讲解了如何安装与配置MongoDB的windows版,本篇博文接着上一篇讲解如何在Linux系统中安装与配置MongoDB,为了演示,我问同事要了它的云服务器用于演示,当然我自己也有,但是已经安装了,就不卸载重新装了[笑脸]。下载Linux版的MongoDB安装包同样,与windows一样我们先进入官方的下载中心,点击进入Community Server ,然后选择Linux ...

2018-04-09 12:31:03 4524 2

原创 MongoDB学习笔记(二)——安装与配置MongoDB(Windows)

本博文内容用于介绍MongoDB的安装与配置,博文主要介绍本地的MongoDB安装以及服务器的MongoDB安装。本地MongoDB(windows)安装与配置首先我们访问MongoDB的官方网页上的下载页面,点击Community Server(因为是自己用所以安装了社区版本的,如果是企业的话就选择Enterprise Server企业版)到下载tab,如图:本次我们需要安装的是wi...

2018-04-08 16:45:02 3966

原创 MongoDB学习笔记(一)——MongoDB简介

MongoDB数据库是一种可扩展的敏捷NoSQL数据库,它是基于文档存储模型。在这种模型下,数据会被存储为文档,而不是我们熟知的例如MySQL、Oracle等的行和列的存储。文档是以BSON对象的形式存储。MongoDB旨在实现一个高性能、高可用、可自动扩展的数据存储,MongoDB因为速度快、可扩展性强、易于实现、为需要存储用户评论、博客和其他内容的网站提供了极佳的后端存储解决方案:面...

2018-04-04 17:58:01 1044 1

原创 SpringBoot功能笔记

该篇文章用于记录在平时使用时遇到的SpringBoot的一些功能:spring.profiles.activespring boot允许你通过命名约定按照一定的格式(application-{profile}.properties)来定义多个配置文件,然后通过在application.properyies通过spring.profiles.active来具体激活一个或者多个配置文件,如果没...

2018-04-04 11:05:16 208

原创 IDEA开发工具使用过程中出现问题及解决方法

前言该文章为我新使用idea这个开发工具的时候遇到的一些问题,由于以前是使用eclipse开发的。可能一些问题在大家看来比较简单,但是遇到了,自己上网解决总是好的。内容。。。。is under Git, but is not registered in the Settings. 这个问题是我是用git导出一个项目之后,后面不知道怎么的新打开idea会有这个错误。后来百度了之后...

2018-04-04 10:49:43 2067

转载 ThreadLocal

本文主要是我今天学习《JAVA并发编程实战》的时候,看到了一个ThreadLocal的知识。上面讲的很抽象,所以自己在网上研究了一下。下面是我从知乎上找到的一个对于ThreadLocal讲解的应该是比较细腻的一个评论,由于跨平台的原因,不能直接收藏转载,所以copy下来。如果大家想找原文的话。下面我会附上连接的。首先讲一下我网上还到了一句总结ThreadLocal和synchronized 的...

2018-02-27 15:59:39 193

原创 对于过滤器中使用getInputStream()、getParameter()接收参数接收不到的一些知识,以及解决方法。

昨天,我需要做一个从主项目分离出来的项目对主项目的功能的调用,但是在写Http发送Post请求时,遇到了主项目接收不到参数的情况,从而引起了我对项目接收参数的一些探讨。我们知道,对于spring项目接收参数用的最多的方式应该是request.getParameter(“xx”),这种方式了把,不论在过滤器Interceptor的preHandle()做拦截是获取参数处理,还是controlle

2018-02-06 16:24:19 3913 1

原创 idea 的SpringBoot项目做单元测试

SpringBoot项目的一个功能开发完成之后,需要对功能做单元测试,需要项目有单元测试的功能,这个项目是一个新建的项目,所以需要自己弄,下面记载一下步骤。首先,我们使用点击需要做单元测试的类名,右击使用idea自带生成单元测试文件的功能: 1.点击文件 -> GO TO -> Test 2. 3. 4.生成测试文件 5.加单元测试注解 6.在测试类中添加测试逻

2018-02-02 18:17:15 40030

原创 idea 部署SpringBoot项目时打成jar包一些坑的总结

前一段时间,公司分配给我做一些微服务的功能,比如一些分析、一些可以拿出来的模块,所以采用了SpringBoot搭建的微服务项目,至于关于SpringBoot的介绍,这里就不展开了。今天主要写的是这两天我需要把我本地的项目部署到服务器上,遇到的一个问题。还有我这两天查看网上的一些关于SpringBoot部署发现的其他人发现的一些问题,在这里总结一下,用于以后能够自己能够快速查看解决,当然如果能够帮助

2018-01-26 13:41:11 115649 5

原创 行为日志分析java简单实现方法

这里不多说,这个主要是我前面一篇博文的实现方法,用于对每天产生的行为日志分析出对于用户的一些属性以及偏好等等,这里我们日志存到的是mongodb里面,所以我是使用mongodb+java还有一点mysql的东西实现的。mysql主要查一些请求数据中实体的信息的。当然下面代码也仅仅是我对行为日志的一个非常初级的分析,当然代码也很初级,不优雅(说代码不优雅的就别喷了),但的确是分析出来东西了,后面

2018-01-03 11:53:38 2214

原创 idea同时启动多个项目,启动不起来,以及打不开默认页面解决方法

因为以前用的开发工具是eclipse。在eclipse中启动多个相互引用的项目,或者不关联的项目,都是非常容易的,只需要创建tomcat实例即可,tomcat实例直接无项目关联关系。但是现在使用的idea工具,就有问题了。我现在的项目有三个,如下图:其中api 是暴露出来的接口工程,api里面有controller,api与core工程通过dubbo+zookeeper 实现前后端

2018-01-03 10:44:38 19902 1

《Redis设计与实现》知识图谱

对《Redis设计与实现》一书中的知识点进行全面的整理,让大家对Redis的整体架构以及其知识点有更为全面的认知

2021-02-23

Redis.xmind

对《Redis设计与实现》一书中的知识点进行全面的整理,让大家对Redis的整体架构以及其知识点有更为全面的认知

2021-02-22

空空如也

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

TA关注的人

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