- 博客(285)
- 资源 (18)
- 收藏
- 关注
原创 解决vue运行报错:npm ERR! my-project@1.0.0 dev: `webpack-dev-server --inline --progress --config build/webp
1.vue环境:2.按照vue初始化项目教程1.vue init webpack my-project2.npm install3.npm run dev结果报错:解决方法:怀疑是npm下载问题,使用cnpm可以运行成功。npm install -g cnpm --registry=https://registry.npm.taobao.orgcnpm installcnpm run dev注:如果还是不行,到目录下把node_modules直接删除,再.
2021-06-06 17:57:23 5252 1
原创 mybatis源码解读:session包
session包是整个mybatis应用的对外接口包。1.SqlSession及其相关类1.1 SqlSession的生成链在进行查询操作时,只需要和SqlSession对象打交道,而SqlSession对象是由SqlSessionFactory生产出来的,而SqlSessionFactory又是由SqlSessionFactoryBuilder创建的。public class SqlSessionFactoryBuilder { public SqlSessionFactory
2021-02-14 19:55:49 603 2
原创 mybatis源码解读:executor包(错误上下文)
ErrorContext类是一个错误上下文,能够提前将一些背景信息保存下来。这样在真正发生错误时,便能将这些背景信息提供处理,进而给我们的错误排查带来便利。public class ErrorContext { // 获得当前操作系统的换行符 private static final String LINE_SEPARATOR = System.getProperty("line.separator","\n"); // 将自身存储进ThreadLocal,从而进行线程间的隔离 pr
2021-02-10 20:29:28 188
原创 mybatis源码解读:executor包(执行器功能)
executor包中的各个子包提供的功能,最终这些功能都由Executor接口及其实现类共同对外提供服务。Executor接口基于以下方法可以完成增,删,改查以及事务处理等操作。事实上,mybatis中的所有数据库操作是通过调用这些方法实现的。public interface Executor { ResultHandler NO_RESULT_HANDLER = null; // 数据更新操作,其中数据的增加、删除、更新均可由该方法实现 int update(MappedS...
2021-02-09 20:40:59 260 2
原创 mybatis源码解读:executor包(结果处理功能)
欢迎关注本人公众号:mybatis查询结果的处理需要完成的步骤有:1.处理结果映射中的嵌套映射等逻辑2.根据映射关系,生成结果对象3.根据数据库查询记录对结果对象的属性进行赋值4.将结果对象汇总为List,Map,Cursor等形式。1.结果处理功能其中executor包中的result子包将负责完成"将结果对象汇总为List,Map,Cursor等形式"的简单功能的一部分。result子包中主要有3个类:DefaultResultContext类、Default.
2021-01-31 22:10:34 252
原创 mybatis源码解读:executor包(参数处理功能)
欢迎关注本人公众号:sql语句中的参数赋值是有由executor包中的parameter子包完成的。parameter子包其实只有一个parameterHandler接口,它定义了2个方法:public interface ParameterHandler { Object getParameterObject(); void setParameters(PreparedStatement ps) throws SQLException;}Parameter.
2021-01-24 21:00:31 234
原创 mybatis源码解读:executor包(语句处理功能)
欢迎关注本人公众号:1.mybatis对多语句类型的支持在mybatis映射文件中传参数,主要用到#{} 或者 ${}.#{}:表示使用这种符号的变量会以预编译的形式赋值到sql片段中。${}:表示使用这种符号的变量会以字符串的形式直接插到sql片段中。mybatis中支持三种语句类型,不同语句类型支持的变量符号不同。mybatis的三种类型如下: STATEMENT:这种语句类型中,只会对sql片段进行简单的字符串拼接。只支持使用${}. PREPARED:这.
2021-01-13 22:15:05 143
原创 Mybatis源码解读:executor包(懒加载功能)
欢迎关注本人公众号:1.懒加载功能的使用要使用懒加载,需要在mybatis的配置文件中启用该功能。<setting><settingname="lazyLoadingEnable"value="true"/></setting>mybatis的懒加载的实现由executor包的loader子包支持。2.懒加载功能的实现2.1代理工厂ProxyFactory是创建代理类的工厂接口,其中的setProperties方法用来对工厂进行...
2021-01-06 22:09:43 209
原创 Mybatis源码解读:executor包(主键自增功能)
欢迎关注本人公众号:executor执行器包作为mybatis的核心将其他各个包凝聚在一起,会调用配置解析包解析出配置信息,会依赖基础包提供的基础功能,最终executor包将所有的操作串连在一起,通过session包向外暴露出一套完整的服务。1.主键自增功能在进行数据插入操作时,经常需要一个自增生成的主键编号,这既能保证主键的唯一性, 又能保证主键的连续性。mybatis的executor包中的keygen子包提供主键自增功能。1.主键自增的配置与生效mybat...
2020-12-26 12:18:15 377
原创 mybatis源码解读:transaction包(事务管理功能)
欢迎关注本人公众号:mybatis的transaction包是负责进行事务管理的包,该包内包含2个子包:jdbc子包中包含基于jdbc进行事务管理的类,managed子包中包含基于容器进行事务管理的类。1.事务概述事务即数据库事务,是数据库执行过程中的一个逻辑单元。事务有以下4个特性: Atomicity(原子性):事务必须被作为一个整体执行,要么全部执行, 要么全部不执行。不允许只执行其中的一部分。 Consistency(一致性):事务应该保证数据库从一致性状态...
2020-12-20 18:19:58 1018
原创 mybatis源码解读:cursor包
欢迎关注本人公众号:1.游标的使用在使用mybatis进行数据库查询时,经常会查询到大量的结果。游标可以解决处理大量数据时不是一次读入整个结果集,而是逐一读入和处理结果,这样可以减少对内存的占用。在mybatis中使用游标进行查询非常简单,映射文件不需要任何的变动,只需要在映射接口中标明返回值类型是Cursor。Cursor<User> selectAll();2.游标接口cursor包中源码非常简单,只有一个cursor接口和默认的实现类Defa..
2020-12-20 18:17:57 3165
原创 mybatis源码解读:cache包(缓存机制)
1.缓存机制在进行源码阅读时,通常可以以包为单位进行,因为包本身就是具有一定结构、功能的类的集合,但是,也总会有一些功能相对复杂,会横跨多个包。因此以功能为主线一次阅读多个包中的源码是必要的,能帮助我们理清功能实现。mybatis基于cache包中提供的缓存实现了两级缓存机制。1.一级缓存mybatis的一级缓存又叫本地缓存,与它相关的配置项有2个。1.在配置文件XML的setting节点,可选项有session与statement,分别对应了一次会话和一条语句,一级缓存的默认范围是se
2020-12-16 22:17:12 394
原创 mybatis源码解读:cache包(缓存基本功能)
1.简述:Mybatis每秒可能要处理数万条数据库查询请求,而这些请求可能是重复的。缓存能够减低数据库查询次数,提升mybatis的性能。mybatis缓存使得每次数据库查询请求都会优先经过缓存系统的过滤,只有没有命中缓存的情况下才会去查询数据库。cache包就是mybatis缓存能力的提供者。2.cache包结构与cache包接口cache包是典型的装饰器模式应用案例,在impl包存放实现类,在decorators包中存放了众多的装饰器类。而cache接口是实现类和装饰器类的共同接口。
2020-12-13 17:13:26 735 1
原创 解决was not registered for synchronization because synchronization is not active
项目采用mybatis, 多数据源连接。在线上服务器调用接口时发现执行不了sql。报错:was not registered for synchronization because synchronization is not active排查发现原因是:该服务器被限制访问要连接的数据库解决方法:开放连接数据库的权限即可。我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。...
2020-11-19 13:17:56 57334 11
原创 解决ssm项目启动报错:Logging initialized using ‘class org.apache.ibatis.logging.stdout.StdOutImpl‘ adapter.
ssm项目启动一直卡在Logging initialized using 'class org.apache.ibatis.logging.stdout.StdOutImpl' adapter.一般出现这种错误的几种情况:1.项目启动连接数据库失败,请先检查下能打开数据库。我就错在这里。2.对应的sql语句的id有重复。3.标签缺少,或者标签有问题4.中英文切换导致有特殊字符...
2020-09-01 09:37:56 8408 1
原创 解决使用springcloud zuul出现Forwarding error错误
使用zuul进行网关过滤请求时出现Forwarding error错误:2019-04-21 12:39:29.332 INFO [service-zuul,5aadd031214b12da,5aadd031214b12da,false] 14644 --- [nio-7020-exec-3] com.cxh.study.platform.filter.MyFilter : POST ...
2019-04-21 13:22:26 13828 3
原创 springboot使用@SpringBootTest注解进行单元测试
概述@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。基本用法如下:1.添加依赖:<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation...
2019-02-20 22:18:59 249123 7
原创 数据的物理分页和逻辑分页
实现数据分页的方式可以自己手写sql或者借助mybatis分页插件或者其他插件达到分页的效果。但无论怎样实现分页功能,其实都涉及到物理分页和逻辑分页两个概念。所以简单理解下物理分页和逻辑分页:一 概述1.物理分页:物理分页依赖的是某一物理实体,这个物理实体就是数据库,比如MySQL数据库提供了limit关键字,程序只需要编写带有limit关键字的SQL语句,数据库返回的就...
2019-02-15 22:23:22 1032 1
原创 分布式学习平台之集成Eureka注册中心(2)
首先明白注册中心是什么?有什么用?微服务为什么需要注册中心?所以简单说下:注册中心可以说是微服务架构中的”通讯录“,它记录了服务和服务地址的映射关系。在分布式架构中,服务会注册到这里,当服务需要调用其它服务时,就到这里找到服务的地址,进行调用。在分布式学习平台之搭建springcloud分布式工程(1)的项目基础上集成Eureka注册中心。原项目结构:步骤:1.在study...
2019-02-07 20:29:54 378
原创 springmvc统一处理异常
系统中异常包括:编译时异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。在开发中,不管是dao层、service层还是controller层,都有可能抛出异常,在springmvc中,能将所有类型的异常处理从各处理过程解耦出来,既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护。主要总结一...
2019-01-30 10:16:34 615
原创 解决springmvc获取ajax发送DELETE或PUT请求时参数为NULL的情况
使用ajax发送type为put或者delete时,请求能到达后台,但后台springmvc无法获取参数,参数为null。比如:$.ajax({ type:'put', url:url, data:{version:version}, success:function(result){ if(result.statusCode==200){ window.l...
2019-01-30 09:29:09 2233
原创 在springmvc的配置文件中配置缓存报The prefix "cache" for element "cache:annotation-driven" is not bound.
在springmvc.xml的配置文件中加入缓存配置: <!-- 缓存配置(两种) --> <!-- 启用缓存注解功能(请将其配置在Spring主配置文件中) --> <cache:annotation-driven cache-manager="cacheManager"/> <!-- Spring自己的基...
2019-01-16 16:09:18 1607
原创 分布式学习平台之搭建springcloud分布式工程(1)
工具:IDEAmaven:3.5jdk:1.8整个项目的目录结构:1.建立maven工程:2.在pom.xml引入依赖包:springcloud和springboot的依赖包存在版本对应关系,所以选择springcloud版本时请查看springcloud官网。注:把项目作为父工程,把packing改为pom。<?xml version="1.0" ...
2019-01-13 21:12:34 377
原创 java通过org.apache.axis发送http请求调用c#写的webService短信接口
因为系统要用到发短信验证功能,是直接调用c#写的webService短信接口所以记录下如何去实现功能:代码:因为这个短信接口是xml格式的:POST /服务名.asmx HTTP/1.1 Host: 接口地址(x.x.x.x)(url :接口地址/服务名.asmx)Content-Type: text/xml; charset=utf-8Content-Length: le...
2018-11-19 19:24:36 2845
原创 java通过java.net.URL发送http请求调用.net写的webService接口
系统是用 java写的,但需要调用同事用.net写的一个webService接口。所以记录下java如何调用其他不同语言的接口的。代码:用到的工具类HttpUtil :package cn.com.comit.appointment.modules.wechat.utils;import java.io.BufferedReader;import java.io.ByteA...
2018-11-19 19:07:46 1064
原创 微信公众号开发之实现自定义微信公众号菜单和跳转第三方网页
自定义菜单创建接口:http请求方式:POST(请使用https协议)https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN自定义菜单查询接口:http请求方式:GEThttps://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCES...
2018-11-10 19:34:16 16746 4
原创 微信公众号开发之获取公众号的access_token
为啥要获取公众号的access_token?因为接下来要实现微信公众号的自定义菜单需要access_token,而且菜单的URl跳转第三方网页也要用到。一、access_token简介为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口、客服接口、获取用户信息接口、用户分组接口、群发接口等,开发者在调用这些接口时,都需要传入一个...
2018-11-10 19:07:21 28523 2
原创 微信公众号实现跟关注用户进行消息的交互功能(2)实现交互功能
一、解析微信服务器传来的消息因为微信服务器发送过来的是xml格式的消息,所以我们可以采用 开源框架dom4j去解析xml 。所用到的jar 包是:dom4j-1.6.1.jar 官网下载地址:http://www.dom4j.org/dom4j-1.6.1/二、将响应消息转换成xml返回给微信服务器如何将响应消息转换成xml返回的问题,这里我们将 采用开源框架xstream...
2018-11-10 18:57:55 4252
原创 微信公众号实现跟关注用户进行消息的交互功能(1)封装基本类
微信公众号实现跟关注用户进行消息的交互功能,我们可以简单的理解:(1)首先,用户向微信服务器发送消息;(2)微信服务器接收到用户的消息处理之后,通过开发者配置的URL和Token 来找到第三方服务器,并以XML形式向第三方服务器发送消息。(3)第三方服务器获取这些消息之后,需要按照微信服务器传过来的XML的语言进行解析,获取到信息之后,根据用户的需求,提供服务,然后封装成XML数...
2018-11-10 18:45:01 1863
原创 微信公众号开发需要准备的一些资料以及如何搭建一个本地测试服务环境
一、账号准备申请一个微信号(下载微信客户端,手机注册,或是qq注册)申请一个微信公众号 (去申请),申请什么样的微信公众号,请参照 微信详细注册步骤。申请一个微信公众平台接口测试帐号 (去申请)二、服务器准备因为微信公众号只能连接到外网地址,是不能直接访问到本地localhost的项目地址进行测试的。1.方式一:买的云主机。推荐 爱名网2.方式二:BAE(注册百度账号,...
2018-11-10 16:48:24 2069 1
原创 合并 k 个排序链表
合并 k 个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[ 1->4->5, 1->3->4, 2->6]输出: 1->1->2->3->4->4->5->6思路:就是合并排序,把每个链表看成数组的一个数,再两两比较,排序,最后返回排序合并的结果。代码:pac...
2018-11-04 23:18:57 465
原创 无重复字符的最长子串
给定一个字符串,找出不含有重复字符的最长子串的长度。示例:给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个子串,"pwke" 是 子序列 而不是子串。 代码实现:
2018-10-29 23:19:10 142
原创 把本地项目上传到GitHub
把本地项目上传到GitHub,这样方便我们管理自己的代码,也不怕哪天电脑重装把代码弄没了。1.先安装git 2.我们需要先创建一个本地的版本库(其实也就是一个文件夹)。 可以直接右击新建文件夹,也可以右击打开Git bash命令行窗口通过命令来创建。通过命令git init把这个文件夹变成Git可管理的仓库 这时候你就可以把你的项目粘贴到这个本地Git仓库里面(粘贴后你可以...
2018-10-07 11:56:05 1078
原创 ssm整合rabbitmq消息队列的简单使用案例
项目:ssm(spring+springmvc+mybatis)编译工具:eclipse消息队列:rabbitmq 1.在pom.xml添加rabbitmq依赖:<!--rabbitmq依赖 --> <dependency> <groupId>org.springframework.amqp&...
2018-10-06 21:09:53 5291 6
原创 Win10安装RabbitMQ
最近想学习使用消息队列RabbitMQ,所以要想下载RabbitMQ。第一步:下载并安装erlang 原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang。 下载地址:http://www.erlang.org/downloads 根据电脑位数选择erlang下载版本。 下载完直接双击进行安装: 安装完后...
2018-10-03 23:48:19 2349
springboot整合quartz,实现数据库方式执行定时任务
2021-11-19
springboot实现接口签名
2021-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人