自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 Springboot常用注解

1.RequestBody可以将请求体中的JSON字符串绑定到相应的bean上(1)之前 $.ajax({        url:"/login",        type:"POST",        data:'{"userName":"admin","pwd","admin123"}',        content-type:"application/j

2018-12-31 22:19:05 298

原创 spring 基于AOP模拟日志打印

一、控制方法执行打印日志、执行后打印日志、让指定方法打印日志1.指定方法打印日志(1)在invoke()方法中加一个对method名字的判断,其中method的名字可以写在xml文件中。二、代码实现1.ILogger代码public interface ILogger { void start(Method method); void end(Method...

2018-12-30 23:42:58 257

原创 spring 基于AOP模拟权限检查

一、基于jdk动态代理模拟权限检查1.JDKProxy.javapublic class JDKProxy implements InvocationHandler { private Object targetObject;//需要代理的目标对象 /* * 创建动态代理,通过反射来实例化目标对象 */ public Object newPr...

2018-12-30 22:41:37 339

原创 详解springmvc工作原理

1.工作原理图(整理总结)2.工作流程(1)用户发出请求到dispatcherServlet;(2)dispatcherServlet接收到请求后调用HandlerMapping处理器映射器,根据xml配置和注解,映射成功后返回一个HandlerExecutionChain对象(处理器执行链),其中包括处理器(Controller)以及拦截器。(3)dispatcherServ...

2018-12-30 20:42:08 175

原创 sqlserver 在做Sql Serve获取表中今天、昨天、本周、上周、本月、上月等数据,这时候就需要使用DATEDIFF()函数及GetDate()函数了。

DATEDIFF ( datepart , startdate , enddate )释义:计算时间差datepare值:year | quarter | month | week | day | hour | minute | second | millisecondstartdate:开始日期enddate :结束日期GetDate()释义:获取当前的系统日期 下面例子中表名...

2018-12-30 17:25:36 979

原创 kakfa安装与简单使用

一、安装(基于mac)brew install kafka1.安装配置文件位置/usr/local/etc/kafka/server.properties/usr/local/etc/kafka/zookeeper.properties2.启动命令(1)启动zookeeper(&表示以后台方式启动)zookeeper-server-start /usr/l...

2018-12-30 17:23:08 378

原创 Redis哨兵基本概念

1.Sentinel(哨兵)是Redis 的高可用性解决方案。通过一个或多个Sentinel 实例组成的Sentinel 系统可以监视多个主服务器和下属的所有从服务器,当主服务器进入下线状态时,自动将主服务器下的从服务器升级为新的主服务器。2.比如:server1下线,会升级server2位新的主服务器3.sentinel哨兵的作用(1)Master 状态监测,如果Master...

2018-12-29 17:47:30 3448

原创 Redis常用配置文件

#Redis服务器集群,以空格分开redis.servers=127.0.0.1:26380 127.0.0.1:26380 127.0.0.1:26380#Redis master集群,与sentinel中配置的名称相同,以空格分开redis.masters=master-6380 master-6381 master-6382#Redis访问密码redis.password=123...

2018-12-29 17:21:41 284

原创 Kafka结构设计

1.基本结构:kafka高强度依赖zookeeper,zookeeper的作用(1)存储broker信息(2)存储topic和partiiton的分布2.kafka消息结构3.4类api

2018-12-29 16:51:07 194

原创 Kafka的基本概念

一、基础Kafka是一个流处理平台,是一个消息对列,但不仅仅是一个消息队列。1.producer :消息和数据的生产者,向kafka的一个topic发布消息。2.conusmer(1)conusmer:消息和数据的消费者,订阅数据(topic)并且处理其发布的消息。(2)consumer group :对于同一个topic,会广播给不同的group,一个group中,只有一...

2018-12-29 16:46:19 768

原创 Redis分布式锁的实现

一、Redis分布式锁1.要满足的几个条件(1)互斥性。在任意时刻,只有一个客户端能持有锁。(2)不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。(3)具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。(4)解铃还须系铃人。加锁和解锁必须是同一个客户端,客户端自己不能把别人加的锁给解了。2.实现原理(基于单...

2018-12-29 11:30:50 197

原创 缓存雪崩、缓存穿透、缓存击穿

一、缓存击穿(针对某一key缓存)1.概念针对于一些设置了过期时间的key,当缓存key在某个时间点过期,恰好此时有大量的并发请求进来,发现缓存过期时,就会从后端DB加载数据并回设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。2.使用互斥锁(mutex key)简单地来说,就是在缓存失效的时候(判断拿出来的值为空),不是立即去load db。比如Redis使用SETNX去s...

2018-12-28 20:54:07 354

原创 Redis过期策略、内存淘汰策略、持久化策略

一、持久化策略1.基本概念 Redis的数据是存在内存中的,若redis宕机,数据就会全部丢失(1)RDB快照,是一次全量备份,快照是内存数据的二进制序列化形式,存储上非常紧凑;(2)AOF日志,是连续的增量备份,AOF日志记录的是内存数据修改的指令记录文本,当数据库重启时要加载AOF日志进行指令重放,所以需要定期进行AOF重写,对日志进行瘦身。2.怎么进行备份的(1)RD...

2018-12-28 20:43:30 2136

原创 Redis的应用场景

一、基本概念redis作为键值对数据库,常用的5种数据类型为字符串类型string,散列类型hash,列表类型list,集合类型set、有序集合类型zset。二、redis的应用场景1.分布式锁(实现是基于setnx和给一个超时时间(防止释放锁失败)) 基于 数据库的乐观锁 基于Redis的分布式锁 基于ZooKeeper的分布式锁 2.计数器(浏览次数)...

2018-12-28 19:44:36 239

原创 龙果支付系统

龙果支付系统是国内首款开源的互联网支付系统,其核心目标是汇聚所有主流支付渠道,打造一款轻量、便捷、易用,且集支付、资金对账、资金清结算于一体的支付系统,满足互联网业务系统的收款和业务资金管理需求。主要特点:1. 具备支付系统通用的支付、对账、清算、资金账户管理、支付订单管理等功能;2. 目前已接通“支付宝即时到账”和“微信扫码支付”通道;3. 支持直连和间连两种支付模式,任君选择;...

2018-12-27 23:04:14 588

原创 Tomcat的Session管理机制

一、Session使用原理请求过程中的session操作:(1)首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中。(2)然后再从 request获取session的时候,如果存在sessionId那么就根据Id从session池中获取session,如果sessionId不存在或者session失效,那么则新建session并且将ses...

2018-12-27 23:01:09 2207

原创 2018高级面试题

基本概念操作系统中 heap 和 stack 的区别什么是基于注解的切面实现什么是 对象/关系 映射集成模块什么是 Java 的反射机制什么是 ACIDBS与CS的联系与区别Cookie 和 Session的区别fail-fast 与 fail-safe 机制有什么区别get 和 post请求的区别Interface 与 abstract 类的区别IOC的优点是什么IO ...

2018-12-27 23:00:44 309

原创 sqlserver 中 case when 的用法

1.case  when 的用法(1)简单Case函数CASE sexWHEN '1' THEN '男'WHEN '2' THEN '女'ELSE '其他'END(2)--Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他'END 2.case  when 代码...

2018-12-27 14:18:16 37276

原创 项目使用iframe,session失效时不能正常跳转到登录页面的问题

1.js/*解决iframe框架session失效时跳不出去*/if (window != top) { top.location.href = location.href;}2.Java中使用jsresponse.setCharacterEncoding("gbk");PrintWriter out = response.getWriter(); out.prin...

2018-12-24 20:06:26 582

原创 springboot 中@Bean的用法

1.@Configuration、@Bean配置详解(1)@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的< beans>,作用为:配置spring容器(应用上下文)(2)在@Configuration加上@Bean去注册一个bean 对象,这样我们就不用再去写xml文件去注册bean对象。@Bean标注在方法上(返回某个实例的方法)。...

2018-12-24 14:16:39 16326

原创 自定义注解——基于springboot

1.自定义注解实现——判断接口是否需要验证MD5@Documented@Target(ElementType.METHOD)@Inherited@Retention(RetentionPolicy.RUNTIME) public @interface checkAnnotation { boolean check() default false; String privat...

2018-12-22 21:57:52 244

原创 详解在Java中写JS代码

1.项目实战response.setCharacterEncoding("gbk"); PrintWriter out=response.getWriter();out.print("<script>top.location.reload();</script>");out.flush();2.关闭本页面,跳转到百度response.setChara...

2018-12-18 16:12:44 4614

原创 Mybatis的一对多

1.controller//使用级联查询:查询出学生信息的同时查询出题目listList<QuestionInfo> researchWordList = null; researchWordList = researchInfoService.getExportStudentInfoList(questionInfo);if(researchWordList.s...

2018-12-17 19:41:36 120

原创 springmvc扫描多级目录配置

<context:component-scan base-package="com.xxx.**.web.controller"/>、** :2级可以  3级可以*.* :2级可以 3级不可以.. :2级不可以  3级不可以

2018-12-17 17:46:53 2911

原创 NIO的实现原理

Jetty、Mina、Netty、ZooKeeper等都是基于NIO方式实现。一、通道(Channel)1.通道是对原 I/O 包中的流的模拟,所有数据都必须通过通道。它是一个对象,可以通过它读取和写入数据。借助通道可以用最小的总开销来访问操作系统本身的 I/O 服务。2.主要类型分别对应文件IO、UDP和TCP(Server和Client)。 FileChannel ...

2018-12-16 18:48:02 1258

原创 java中 io和nio的区别

一、概念1.基本概念(1)i o(inputstream/outputstream)整个Java IO体系都是基于字符流(InputStream/OutputStream) 和 字节流(Reader/Writer)作为基类,根据不同的数据载体或功能派生出来的。(2)nio(new io ,指Java新的IO类库)基于通道和缓冲区,实现方式是块,它的目的是提高速度,弥补io的不足...

2018-12-16 18:45:15 608

原创 idea破解

1.将JetbrainsCrack-3.1-release-enc.jar放到/Applications/IntelliJ IDEA.app/Contents/bin下2.修改idea.vmoptions3.重启,输入code-javaagent:../bin/JetbrainsCrack-3.1-release-enc.jarThisCrackLicenseId-{"licen...

2018-12-16 11:20:47 1091

原创 springboot与微服务的区别联系

一、 微服务架构1.微服务架构微服务是一种分布式系统架构,是一种思想,是一种设计原则。通过springboot来创建服务,而Spring Cloud是关注全局的服务治理框架。2.微服务的优势(1)复杂度可控:即便再复杂的应用开发,我们把它拆分成多个小的微服务,就很简答的进行分组开发,大大的提高效率。(2)独立部署:由于微服务具备独立的运行进程,所以每个微服务也可以独立部署。...

2018-12-13 20:58:45 3374

原创 Linux下打包压缩war、解压war包和jar命令

解决把project_a文件夹下的文件打包成project.war1. 打包jar -xvf project.war /project_a-c 创建war包-v 显示过程信息-f 指定 JAR 文件名,通常这个参数是必须的-M 不产生所有项的清单(MANIFEST〕文件,此参数会忽略 -m 参数-0 这个是阿拉伯数字,只打包不压缩的意思2...

2018-12-13 11:48:43 554

原创 maven工程报错:java.lang.AbstractMethodError: org.mybatis.spring.transaction.SpringManagedTransaction.get

错误原因是 mybatis-spring 包版本问题,那么要么换mybatis或者spring包的版本,要么换整合包的版本。经过测试:我的spring包是4.3.7版本。mybatis版本是3.4.2    出错时整合包版本:1.2.2把整合包版本依次往上加,最后加到  1.3.0   就可以正常运行,那么经过测试最新版1.3.1也是可以运行的。所以说,对于已经配置好的spring和m...

2018-12-08 22:15:47 403

原创 Mybatis整合redis实现分布式的二级缓存

1.mybtais缓存机制 2.Mybatis二级缓存实现原理(1)mybatis的二级缓存主要在Executor对象上进行操作,当mybatis发现在mybatis.xml配置文件中设置了cacheEnabled=true时,mybatis在创建sqlsession时创建Executor对象,同时会对Executor加上装饰者【CacheExecutor】。(2)Ca...

2018-12-08 15:32:02 710

原创 Git中.gitignore文件不起作用的解决

gitrm-r--cached.gitadd.gitcommit-m'update.gitignore'git push origin

2018-12-08 11:20:40 377 1

原创 Tomcat在JVM上的ClassLoader机制(基于分布式sesison问题)

1.下JVM的Classloader机制JVM的classloader加载继承关系分为BootstarpClassLoader --> ExtClassLoader --> SystemClassLoader,应用的WebAppClassLoader继承自SystemClassLoader,在加载具体某个类时,一般会先委托给父类ClassLoader,当父类ClassLoader无...

2018-12-08 11:10:53 306

原创 tomcta加入redis分布式session报错记录

1.在tomcat 配置文件context.xml中添加<Loader delegate="true" />即可十二月 08, 2018 10:49:59 上午 org.apache.tomcat.util.digester.Digester endElement严重: End event threw exceptionjava.lang.NoSuchMethodExcept...

2018-12-08 10:58:28 228 1

原创 git将本地代码更新到远程分支

1.本地执行 git branch -r不显示内容git fetch origin(一般情况下不要使用。会拉取所有代码)然后我们在git branch -r

2018-12-06 20:04:35 2683

原创 The file will have its original line endings in your working directory

1.首先出现这个问题主要原因是:我们从别人github地址上通过git clone下载下来,而又想git push到我们自己的github上,那么就会出现上面提示的错误信息此时需要执行如下代码:    git rm -r --cached .    git config core.autocrlf false    git add .. 代表当前目录2.  格式化 (Wind...

2018-12-05 20:17:09 2054

原创 IDEA中如何打jar包

正文一、生成不带Manifest文件的Jar(不可以直接执行Jar)1,首先打开Project Structure(Command+;)然后选择左边的Artifacts,再点上方的“+”号,来新建一个Artifact(按照Maven的说法,所有生成的东西都可以叫作Artifact,当然也包括Jar)。 2,在弹出的选择框里,选择Jar -> Emtpy。 3,选择完Emp...

2018-12-05 10:37:45 2013

原创 IDEA报错:The following problems have occurred when adding the files: The following paths are ignored

在 Git Bash中输入git config core.longpaths true

2018-12-04 11:35:45 15603 1

原创 解决git pull/push每次都需要输入密码问题

git bash进入你的项目目录,输入:git config --global credential.helper store然后你会在你本地生成一个文本,上边记录你的账号和密码。当然这些你可以不用关心。然后你使用上述的命令配置好之后,再操作一次git pull,然后它会提示你输入账号密码,这一次之后就不需要再次输入密码了。...

2018-12-03 20:47:59 2284

原创 浅谈数据库读写分离、垂直拆分、水平拆分

一、读写分离二、垂直拆分、水平拆分1.垂直划分(1)按照业务将表进行分类,垂直拆分是把不同的表拆到不同的数据库中。数据库专库专用,比如拆为Products、Users、Deal库。缺点:(1)部分业务表无法join,只能通过接口方式解决,提高了系统复杂度。(2)受每种业务不同的限制存在单库性能瓶颈,不易数据扩展跟性能提高。(3)事务处理复杂。2.水平划分按行为拆分...

2018-12-03 11:22:10 622

jstl-1.2 搭建springmvc所需的jar包

jstl-1.2jar包,是一种语言规范,他把复杂的jsp函数封装成简单的<>标签形式,在写jsp页面的时候更方便一些。不用也能写页面,更方便而已。

2017-09-20

空空如也

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

TA关注的人

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