- 博客(213)
- 收藏
- 关注
转载 CSS 五种布局方式
一、浮动布局<!DOCTYPE html><html><head> <meta charset="utf-8" /> <title>浮动布局</title> <style type="text/css"> .wrap1 div{ min-heig...
2019-08-29 22:32:00
570
原创 SpringBoot第十三课——整合pagehelper分页插件
接着上一篇https://blog.csdn.net/sinat_22808389/article/details/97239750,我们继续整合pagehelper,步骤如下:1.引入插件依赖<!--pagehelper --><dependency> <groupId>com.github.pagehelper</groupId>...
2019-07-30 11:29:41
225
原创 mybatis自动生成代码
想想在手写很多entity、mapper及mapper对应的接口的时候,很多重复的东西,手写,太费时了!可以通过自动生成代码来提高效率。下面来看看mybatis怎么自动生成我们所需的代码。1.添加mybatis-generator依赖包<dependency> <groupId>org.mybatis.generator</groupId> <...
2019-07-30 10:23:39
201
原创 SpringBoot第十二课——整合mybatis
mybatis的详细内容可参考:https://blog.csdn.net/hellozpc/article/details/80878563#1JDBC_1,下面开始mybatis与SpringBoot的整合。一、注解方式1.引入mybatis依赖及数据库<dependency><!--添加MySql依赖 --> <groupId>my...
2019-07-25 11:25:41
167
原创 SpringBoot第十一课——统一异常处理
关于异常的概念什么的这里就不多说了(详见:https://www.cnblogs.com/williamjie/p/9103658.html),我们来直接看在SpringBoot中怎么统一处理异常吧。1.创建统一处理异常的类@ControllerAdvicepublic class MyExcepthonHandler { @ResponseBody @ExceptionHan...
2019-07-24 15:08:20
138
转载 SpringBoot第十课——过滤器及拦截器
一、拦截器与过滤器 在讲Spring boot之前,我们先了解一下过滤器和拦截器。这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的。在分析两者的区别之前,我们先理解一下AOP的概念,AOP不是一种具体的技术,而是一种编程思想。在面向对象编程的过程中,我们很容易通过继承、多态来解决纵向扩展。但是对于横向的功能,比如,在所有的service方法中开启事务,或者统一记录日志等功能...
2019-07-23 16:58:51
145
原创 SpringBoot第九课——整合JPA
一.JPA概念: JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。(来自百度)。二、整合JPA1.引入依赖<dependency><!--添加JPA依赖 --> <groupId>org.spring...
2019-07-22 14:14:20
113
原创 SpringBoot第八课——定时任务与异步
定时任务在很多场景有用,比如定时监控某服务,定时处理某处理等等,那么SpringBoot里面这么搞定时任务呢?下面我们来看看SpringBoot 定时任务的几种方式。1.基于注解(最简单明了的一种)来看看怎么注解,我们在service层定义个定时任务类吧,就叫ServiceJob:@Component@EnableScheduling //开启定时任务public class S...
2019-07-19 17:08:23
185
原创 SpringBoot第七课——单元测试
不写单元测试的项目不是好项目,不写单元测试的程序猿不是好测试,下面我们来看看SpringBoot怎么整合测试,这里只讲controller的测试,其他层的测试很简单,这里就略过:1.引入测试依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactI...
2019-07-17 21:49:06
137
原创 Springboot第六课——整合模板引擎
这里我们整合模板引擎FreeMarker1.引入依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-freemarker</artifactId></dependency>2.配...
2019-07-17 15:46:47
132
原创 SpringBoot第五课——整合日志
SpingBoot框架默认使用SLF4J抽象层和Logback实现,这里SLF4J是日志门面,是一种抽象,不是日志的具体实现,具体实现是Logback。(详细可看:https://mp.weixin.qq.com/s/vCixKVXys5nTTcQQnzrs3w)1.pom引入日志依赖 <dependency> <groupId>org.springfr...
2019-07-16 21:56:10
113
原创 SpringBoot第四课——常用传参方式
接着第一课:https://blog.csdn.net/sinat_22808389/article/details/815900421.path传参在RestController 下添加如下方法://path 传参数 get请求方式 @RequestMapping(value = "/postPath") public String postByPath(@Req...
2019-07-16 20:48:51
581
原创 SpringBoot 第三课——跨域请求
现在的很多开发模式是前后端分离的,所以前端页面和后端服务通常不在同一个域中,但是浏览器有一个安全策略,就是不允许跨域请求数据,为什么不允许,可以找相关文章学习。下面我们来解决我们的后端服务允许跨域请求。本地桌面写一个页面crossdomain.html,通过ajax请求后端数据:<!DOCTYPE html><html style="height: 100%; ma...
2019-07-16 16:11:03
109
原创 SpringBoot 第二课——热加载
接上一篇:https://blog.csdn.net/sinat_22808389/article/details/81590042在开发过程中,每次修改代码都要重新启动服务?好费时间啊,来看看怎么样让springBoot实现热加载,即不用重启服务,修改的代码即时生效。很简单,引入依赖如下,便可:<dependency> <groupId>org.sprin...
2019-07-16 14:23:02
161
原创 Dajango 搭建Web笔记
一、环境搭建1.要使用 Django ,首先需要建立一个虚拟工作环境。 虚拟环境 是系统的一个位置,你可以在其中安装包,并将其与其他 Python 包隔离新建一个目录,将其命名为 learning_log ,再在终端中切换到这个目录,并创建一个虚拟环境。如果你使用的是 Python 3 ,可使用如下命令来创建虚拟环境.learning_log$ python -m venv ll_e...
2019-07-11 17:01:58
402
原创 pip 笔记
1.如果pip安装包时出现如下错误:Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection原因是请求超时导致的,可自己定义安装源pip命令后自己设定收集源(-i +url)例如:pip install requests -i http://py...
2019-07-11 09:30:00
147
原创 排序——快速排序
快速排序算法思路:快速排序采用双向查找的策略,每一趟选择当前所有子序列中的一个关键字作为分割线,将子序列中比分割线小的前移,比分割线大的后移,当本趟所有子序列都被分割线按上述规则划分完毕后将会得到新的一组更短的子序列,他们将成为下趟划分的初始序列集。下面来看代码: public void quickSort(int a[], int low, int high) { if (low...
2019-07-10 15:04:13
136
原创 排序——归并排序
归并排序算法思想: 归并排序的思路是大问题不断地化简为小问题,即不断地将待排序的序列拆分成更小的序列,直到不可拆分(只有一个元素)为止,然后将各个排好序的序列合并起来,最终得到一个有序的序列,每次拆分将序列拆分为原来的一半,子问题排好序后合并,所以归并排序的时间复杂度为O(n*logn)。下面来看代码: public void mergeSort(int[] arr) { //...
2019-07-08 15:05:42
117
原创 排序——选择排序
选择排序思想: 选择排序,从第一个元素开始,每次从后面的元素中选择一个最小的依次放入前面的位置。下面来看代码: public void selectSort(int arr[]) { for (int i = 0; i < arr.length; i++) { int minIndex = i; // 找到最小值元素的位置minIndex for (i...
2019-07-08 11:14:12
102
原创 排序——插入排序
一、插入排序插入排序思想:回想一下我们打扑克的时候摸牌的过程,有时喜欢把牌按大小顺序排列起来,每次摸到的牌和手中的牌比较,如果小的话就往前找位置,一直移到比它小的牌后面,比它大的牌前面,然后将牌插入,一直到牌摸完,我们手中的牌最后就是有序的。而插入排序就像我们打扑克牌摸牌的过程是一样的。来看代码:public void insertSort(int[] arr) { fo...
2019-07-05 17:01:30
110
原创 python极简笔记——单元测试
#Python 标准库中的模块 unittest 提供了代码测试工具.def formatName(firstName,lastName): return (firstName + ' ' + lastName).title()import unittestclass NamesTestCase(unittest.TestCase): #测试formatName函数 ...
2019-07-05 10:19:53
190
原创 python极简笔记——模块导入import
#从 functionDemo 模块导入 anyNumKeyPram 方法,别名为ffrom functionDemo import anyNumKeyPram as f#通过别名调用 anyNumKeyPram 方法f(name='xyp', age='17')
2019-07-05 10:17:23
196
原创 python极简笔记——文件操作
#文件操作#1.读取文件#打开文件,关键字with 在不再需要访问文件后将其关闭with open('data\data1.txt') as fobj: #读取文件内容 contents = fobj.read() print(contents) #逐行读取with open('data\data1.txt') as f: for line in f: p...
2019-07-05 10:14:51
162
原创 python极简笔记——函数与传参
#python 函数定义格式 def 函数名def kePram(name,age): print(name,age) #关键字实参kePram(name='xx', age='18')#参数默认值def funcPramDefault(name, age = 18): print(name,age)funcPramDefault('xh')funcPramDefau...
2019-07-05 10:11:56
159
原创 python极简笔记——异常
#异常def exceptionFunc(): print(7/0)#exceptionFunc()#使用try-except 处理异常def sloveExecption(): try: print(7/0) except ZeroDivisionError: print('divide by zero!!!!')sloveExecption()#e...
2019-07-05 10:08:30
141
原创 python极简笔记——类
#1.创建类及使用类创建实例class Animal: #__init__类似java中的构造函数 self类似java中的this def __init__(self, name, age): self.name = name self.age = age #实例的方法必须有self def run(self): print(self.name,' ...
2019-07-05 10:06:49
155
原创 表单重复提交问题解决
重复提交:用户在点击提交后,后台程序还未处理完成,用户不知道,等得不耐烦了,又不断的点击提交,导致后台多次操作重复提交的数据,导致数据错误。所以怎样解决这样的问题呢?解决的途径有两种:1.前端控制2.后台session判断前端控制有两种方法,一个是提交后通过该将提交按钮置灰(这种体验极不好不推荐),一个是通过js控制只提交一次。下面我们来看看通过js控制只提交一次的方式:...
2019-07-03 14:12:23
298
原创 哈夫曼树
哈夫曼树: 当树中的节点被赋予一个表示某种意义的数值,我们称之为该节点的权。从树的根节点到任意节点的路径长度(经过的边数)与该节点上权值的乘积称为该节点的带权路径长度。树中所有叶节点的带权路径长度之和称为该树的带权路径长度(WPL)。当带权路径长度最小的二叉树被称为哈夫曼树,也成为最优二叉树。哈夫曼树的构造: 哈夫曼树在构造时每次从备选节点中挑出两个权值最小的节点进行构造,每次构...
2019-07-01 15:09:07
713
原创 递归回溯——八皇后问题
八皇后问题: 国际象棋中皇后能横向,纵向和斜向移动,在这三条线上的其他棋子都可以被吃掉。所谓八皇后问题就是:将八位皇后放在一张8x8的棋盘上,使得每位皇后都无法吃掉别的皇后,(即任意两个皇后都不在同一条横线,竖线和斜线上),问一共有多少种摆法?解决思路:1.将第一行第一列放入2.在第二行适合的位置(不在上一个皇后的同行同列及对角线上)放入如此类推,直到放到第八个皇后即为一种解...
2019-07-01 13:44:31
178
原创 字符串匹配——KMP算法
算法思路: 假设文本串S匹配到 i 位置,模式串P匹配到 j 位置如果j = -1,或者当前字符匹配成功(即S[i] == P[j]),则令i++,j++,继续匹配下一个字符;如果j != -1,且当前字符匹配失败(即S[i] != P[j]),则令 i 不变,j = next[j]。此举意味着失配时,模式串P相对于文本串S向右移动了j - next [j] 位。next数组的求解:...
2019-06-27 13:43:01
132
原创 堆
堆是一种数据结构,分为大根堆和小根堆。下面以大根堆为例1.大根堆有着如下特点: a.顺序:堆顶元素永远是最大的。 b.形状:堆是一颗完全二叉树。这两个特性保证了堆在插入和删除的过程中最大时间复杂度也是满足O(logn)的,所以是一种非常高效的数据结构格式。2.更新堆的两种方式,分别对应了插入元素和删除堆顶元素操作: 自底向上...
2019-05-22 15:15:26
176
转载 elasticsearch 入门教程
原文链接:http://www.ruanyifeng.com/blog/2017/08/elasticsearch.html
2019-05-14 10:28:49
801
转载 SpringBoot使用数据链接池Druid进行监控
原文链接:https://blog.csdn.net/u014427391/article/details/70890506Druid Druid:一款为监控而生的数据库连接池框架,整个项目由数据库连接池、插件框架和SQL解析器组成。Druid功能介于PowerDrill和Dremel之间,它几乎实现了Dremel的所有功能,并且从PowerDrill吸收一些有趣的数据格式。Druid...
2019-04-28 14:09:14
970
转载 阿里java及SQL开发规范
原文链接:https://blog.csdn.net/JobsandCzj/article/details/78049526Java开发规范命名【规范】类名使用UpperCamelCase 风格,必须遵从驼峰形式,但以下情形例外: ( 领域模型的相关命名 )DO / BO / DTO / VO 等。正例: MarcoPolo / UserDO / XmlService / TcpUd...
2019-04-26 10:40:56
2154
转载 SQL 规范
原文链接:https://www.jianshu.com/p/359ed85c3243适用场景:并发量大、数据量大的互联网业务一、 基础规范1. 推荐使用InnoDB存储引擎支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高2. 使用UTF8字符集万国码,无需转码,无乱码风险,节省空间3. 数据表、数据字段必须加入中文注释4. 高并发场景下...
2019-04-26 10:25:37
200
转载 HashMap实现原理及源码分析
HashMap实现原理及源码分析 哈希表(hash table)也叫散列表,是一种非常重要的数据结构,应用场景及其丰富,许多缓存技术(比如memcached)的核心其实就是在内存中维护一张大的哈希表,而HashMap的实现原理也常常出现在各类的面试题中,重要性可见一斑。本文会对java集合框架中的对应实现HashMap的实现原理进行讲解,然后会对JDK7的HashMap源码进行分析。目录...
2019-03-12 09:24:42
1022
转载 图解红黑树
————————————二叉查找树(BST)具备什么特性呢?1.左子树上所有结点的值均小于或等于它的根结点的值。2.右子树上所有结点的值均大于或等于它的根结点的值。3.左、右子树也分别为二叉排序树。下图中这棵树,就是一颗典型的二叉查找树:1.查看根节点9:2.由于10 > 9,因此查看右孩子13:...
2019-03-11 22:30:15
316
转载 java简单实现RPC框架
一、RPC简介RPC,全称为Remote Procedure Call,即远程过程调用,它是一个计算机通信协议。它允许像调用本地服务一样调用远程服务。它可以有不同的实现方式。如RMI(远程方法调用)、Hessian、Http invoker等。另外,RPC是与语言无关的。 RPC示意图如上图所示,假设Computer1在调用sayHi()方法,对于Computer1而言调...
2019-02-27 15:29:14
955
转载 Struts2表单回显
struts2表单回显问题提出:Struts2是如何帮助我们进行表单回显的?问题解决:首先写一个简单的测试程序1)JSP页面主要内容如下(JSP页面名称为form-tag.jsp):<s:debug></s:debug><s:form action="userAction_save" method="post"><s:text...
2018-12-26 20:20:09
178
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人