- 博客(35)
- 问答 (1)
- 收藏
- 关注
原创 二分法java实现
如果mid>n,则将右边界移动到mid-1的位置。如果mid<n,就将左边界移动到mid+1的位置。整体思路就是将输入的一列整数排序后,取排序号整数列的中间值mid,将中间值mid与需要找到的值n进行比较,输入为一列整数,在这一列整数当中找到另一个值。
2024-08-25 21:05:23
186
原创 ControllerAdvice注解的使用
ControllerAdvice对于@ControllerAdvice,我们比较熟知的用法是结合@ExceptionHandler用于全局异常的处理,但其作用不仅限于此。ControllerAdvice拆分开来就是Controller Advice,关于Advice,前面我们讲解Spring Aop时讲到,其是用于封装一个切面所有属性的,包括切入点和需要织入的切面逻辑。这里ContrllerA...
2020-01-12 20:12:08
3839
原创 IDEA配置mybatis-generator
IDEA配置mybatis-generator1.导入依赖要使用mybatis的逆向工程,首先我们需要引用相关的插件。在maven工程中的pom文件中添加以下内容。<!--配置mybatis-generator的插件 --> <plugin> <groupId>org.mybatis.generator</groupId> ...
2020-01-12 20:09:30
1258
原创 Mysql中date、datetime、time、year和timestamp的区别
Mysql中date、datetime、time和timestamp的区别前言当我们在设计数据库表结构的时候,一般都会存在两个字段:数据的创建的时间和更新时间,关于这两个字段类型的选择,mysql给我们提供了多种选择,date、datetime、time、year和timestamp。本人还看到过直接使用varchar类型来存储日期的。这次就来了解一下这几种类型区别。date类型...
2020-01-12 20:05:55
1188
原创 java9
java9近几年来JDK更新飞快,目前最近的更新JDK是ORACLE于2019年9月16日更新的JDK13。并且ORACLE计划于2020年3月发布的JDK14。不得不说,更新速度太快了,一个版本的特性还没有摸熟,新的就已经推出了。当然了,我们在企业开发中,JDK的版本当然不会随着ORACLE的更新而更新,而是根据自身的需要来选择合适的版本。目前国内大多数公司使用的JDK版本都是JDK1.8...
2019-12-15 11:37:44
299
原创 mybatis与SQL注入
SQL注入1.SQL 注入首先了解下概念,什么叫SQL 注入:SQL注入攻击,简称SQL攻击或注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入SQL指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的SQL指令而运行,因此遭到破坏或是入侵。给大家举几个常见的SQL注入的例子:1.比如验证用户登录需要 userna...
2019-12-15 11:34:54
710
原创 关于并发必须知道的几个概念:
关于并发必须知道的几个概念:同步和异步同步和异步通常来形容一次方法调用,同步方法调用一旦开始,调用者必须等到方法调用返回后,才能继续后续的行为。异步方法调用更像一个消息传递,一旦开始,方法调用就会立即返回,调用者就可以继续后续的操作。而异步方法通常会在另外一个线程中“真实”地执行。整个过程,不会阻碍调用者的工作。线程同步和线程异步线程同步:即当有一个线程在对内存进行操作时,其他线程都不...
2019-12-08 18:32:21
186
原创 Redis为什么是单线程的?
Redis为什么是单线程的?1.前言近些年来,由于网络的发展,我们做的项目的用户量也随之递增。在项目中增加了必不可少的一环:缓存。并且在平时的面试中,缓存也是必问的一个知识点。就目前来说,redis和memcached 是最主流的缓存解决方案,并且redis尤其占比极大。今天让我们探究一下redis中的一个知识点,redis为什么是单线程的?首先先让我们简单认识redis?让不清楚的同学有...
2019-12-08 18:18:01
265
原创 github上热门的springBoot实战项目推荐
github上热门的springBoot实战项目推荐多数人希望学习一门技术是通过实战项目,而不是一些零散的知识点。因此我就在github找了几个比较热门的springBoot实战项目。有些项目可能对新手不是很友好,需要一些基础才可以看懂,不过大家可以耐下心来一点点钻研,多思考。需要的朋友可以根据自己的实际情况选择。paascloud-mastergithub地址: https://gith...
2019-11-22 12:19:24
1460
1
原创 MyBatis常用对象SqlSessionFactory和SqlSession介绍和运用
MyBatis常用对象SqlSessionFactory和SqlSession介绍和运用学习框架一个比较好的路径阅读源码.本文介绍的SqlSessionFactory和SqlSession.可以通过了解SqlSessionFactory接口和SqlSession接口以及两个的实现类入手,去看源码了解实现过程.最好能把项目下载到本地,慢慢分析实现过程.Myabtis官网:http://www....
2019-11-17 20:04:04
126
原创 python(2)列表
列表列表是什么?列表由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0-9或所有家庭成员姓名的列表;也可以将任何东西加入列表,其中的元素之间可以没有任何关系。在python中,用方括号 [ ] 来表示列表,并用逗号来分隔其中的元素。# 列表name_list = ["zhangsan","lisi","wangermazi","xiaotaoqi"]print...
2019-11-14 22:40:49
419
原创 python(1)简单数据类型和变量
Python(基于python3)hello worldprint(“hello world”)变量text = “hello world!”print(text)这里添加了一个变量text,变量text中存储了一个值-----即与变量相关联的信息。上述的代码中,变量text存储的是文本hello world!2.1 变量的命名和使用命名规则:变量名只能包含字母、...
2019-11-12 20:59:21
180
原创 Redis持久化之RDB
在运行情况下, Redis 以数据结构的形式将数据维持在内存中, 为了让这些数据在 Redis 重启之后仍然可用, Redis 分别提供了 RDB 和 AOF 两种持久化模式。在 Redis 运行时, RDB 程序将当前内存中的数据库快照保存到磁盘文件中, 在 Redis 重启动时, RDB 程序可以通过载入 RDB 文件来还原数据库的状态。3.1 RDB的触发方式RDB 有两种触发方式,分...
2019-11-12 20:37:19
159
原创 设计模式之工厂模式
.工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。比如椅子、床等家具都是由家具工厂产出的。实现:定义一个接口,/*** * 家具 简单工厂模式 */public inte...
2019-11-10 21:52:09
289
原创 webSocket
webSocket1.为什么会有webSocket的出现?默认HTTP协议只支持请求响应模式,也就是常说的请求-响应模式,这样做可以简化Web服务器,减少服务器的负担,加快响应速度。这种机制对于信息变化不是特别频繁的应用尚能相安无事,但是对于那些实时要求比较高的应用来说,比如说在线游戏、在线证券、设备监控、新闻在线播报、RSS 订阅推送等等,当客户端浏览器准备呈现这些信息的时候,这些信息在服...
2019-11-04 19:55:42
173
原创 使用redis实现分布式锁
https://mp.weixin.qq.com/s/QIAwrloZbNXq0g8s8HSaPA请跳转微信公众号观看 如果满意的话,请点个关注哦
2019-10-31 22:42:44
83
原创 如何优雅的处理Lambda中异常?
1.如何优雅的处理Lambda中异常?java8新增的特性Lambda表达式为我们使用匿名内部类提供了非常简洁的方式。然而,平时在使用lambda的过程发,却发现lambda表达式中如果存在异常,使用try-catch去处理异常,那么这个lambda表达式就会看起来非常臃肿。在lambda中使用try-catch处理异常: List&...
2019-10-28 22:06:20
3727
原创 springBoot+redis禁止重复提交
禁止重复提交1.为什么要禁止重复提交?在我们平时开发的过程中,有很多用户点击提交按钮提交表单或者说用户主动提交某些信息的情景。正常情况下,我们后台正常接收前台提交的内容,然后再进行增删改查等操作。但是,我们都说不能已常理去考虑用户的使用情况。一旦前台提交内容后,因为网络波动或者后台逻辑处理较慢,而前台又没有做禁止点击提交按钮或者等待页面,难免出现用户疯狂点击提交按钮的情况。这种情况就很有可能...
2019-10-25 09:22:30
969
原创 Spring Boot 有哪几种读取配置的方式?
1.使用@Value注解使用@Value注解加载单个属性值如果在yaml或者properteis中存在配置:baidu.token = h4f644y9e4th64kyukl4uil4td4f3hbaidu.username = 157562358985@Component("policyCheck1001")@Slf4jpublic cl...
2019-10-22 09:39:11
5935
原创 Java:springBoot starter 和自动配置
要知道springBoot starter和自动配置的原理,可以先分析一下官方提供的starter的jar包。springBoot对mybatis的自动配置支持提供了jar包:mybatis-spring-boot-starter,我们在springBoot项目中只要引用这个jar包,并且进行少量配置就可以使用mybatis的相关功能了。在IDE中打开这个jar包,发现其中并没有什么代码,只...
2019-10-20 18:19:19
1932
原创 SpringBoot自定义starter
SpringBoot自定义starter源码地址 : https://github.com/YuSheng1223/SpringBoot1.为什么要自定义starter?SpringBoot提供的自动配置功能为我们构建工程和开发程序节省了大量的时间。作为一个码农,光会用可是不够的。这里我们尝试着自己去定义一个starter,在平时工作中,一个自定义的starter可以帮我们完成一些Spri...
2019-10-20 17:10:48
137
原创 HashSet
HashSet其实就是基于HashMap的一种实现,在源码中有很清楚地实现。public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, java.io.Serializable{ static final long serialVersion...
2019-06-19 22:44:26
112
原创 RestTemplate中form请求方式
1.restTemplate是为我们提供了一种更简便进行远程调用的方式。一般来说我们常用的提交参数方式有form和payload方式,下面简单记载一下。form 方式 HttpHeaders headers = new HttpHeaders(); //设置为form方式 headers.setContentType(MediaType.APPLICATION_FORM_URLE...
2019-06-09 17:58:15
6443
原创 Maven配置多环境打包
我们都知道在工作的过程中,一般都会有开发、测试、生产三个环境。三个环境对于发布项目是一件很苦逼的事情。 如果只有一套配置文件的话,在打包的过程中,我们就不得不花费很多时间去修改配置文件。还好maven给我们提供了一种方便快捷的方式来打包。首先,需要有三套配置文件,来对应三个不同的环境。当时,如果是不需要更改的就不需要放在这里了。然后 在pom.xml文件中进行如下配置。<build&...
2019-06-02 17:56:03
452
原创 spring配置mongoDB 3.0
记录一下spring配置mangoDB的方式,注意,我这里用的是mangoDB3.0以上的版本。2.0的配置方式和3.0有一些区别的。刚开始配置的过程中,忽略了版本的事情,方式有一些类中很多方法都过时了,走了很多弯路。大家配置前一定要认清版本。 <!-- 定义mongo对象,对应的是mongodb官方jar包中的Mongo,replica-set设置集群副本的ip地址和端口 -->...
2019-06-02 17:35:45
522
原创 spring整合redis(单点与集群)
项目中经常用到redis,redis的使用方式包括单点和哨兵模式的集群。两种方式的配置方式不同,在此记录一下。单点: <!-- jedisPoolConfig 配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <!--最大空闲数 --> <pr...
2019-06-02 17:30:03
1865
原创 spring配置多数据源
多数据场景: 在业务操作中需要对多个数据库进行访问或者操作。原理: 实现AbstractRoutingDataSource接口,其中包含两个比较重要的属性 private Map<Object, Object> targetDataSources; 最终的数据源 private Object defaultTargetDataSource; 默认数据源 private...
2019-05-28 23:23:33
350
原创 MyBatis 批量新增 修改
MyBatis批量新增 传入参数为List 类型 mapper接口void insertIntoYEAR(@Param("list")List&lt;yearReportData&gt; paramList); &lt;insert id="insertIntoYEAR" parameterType="java.util.List&qu
2018-08-07 21:56:09
553
原创 FineReport简单入门
FineReport报表工具的简单使用:第一步:简单制作一个Excel: 1.首先这款报表工具是直接从数据库中取数据,所以我们首先要连接到数据库:点击 –服务器 –定义数据库连接 我们可以在这里选择要连接的数据库,我这里连接的是本机的mysql数据库。填写完之后可以测试是否连通。2.定义数据集 就是要我们描述用来填充Excel的数据集。点击 报表数...
2018-05-30 18:35:00
42805
原创 Redis主从同步
大致思路: 在多台数据服务器中,只有一台主服务器,而主服务器只负责写入数据,不负责 让外部程序读取数据。 主服务器在写入数据后,即刻将写入的数据命令发送给从服务器,从而使得主从 数据同步。 首先,我们将redis的配置文件redis.conf复制三份。 当前用户没有足够的权限的话,需要切换为root用户。 注:这里操作不是很规范,直接在re...
2018-05-28 15:54:51
330
原创 HashMap源码
大致看了看HashMap的源码,把以前落下来的都补上。 基于JDK1.6 public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable //可序列化 { ...
2018-04-27 10:34:12
114
原创 Maven项目的问题
POM文件报错, 路径拒绝访问: E:\Eclipse-kelper-64–2-Spring-workspace\xd-custom-M\target\classes\com\xzsoft\frame\wfUpdate\mapper\WfUpdateMapper.xml (拒绝访问。) (org.apache.maven.plugins:maven-resources-plugin:2.5:r...
2018-03-23 11:46:41
558
原创 Java编程思想之内部类
内部类 : 可以将一个类的定义放在另一个类的定义内部,内部类允许把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性。/*** * 内部类的创建 把类定义在外部类里面 * @author YuSheng_ * */public class Outer { class FisrtInner { public void firstMethod() {
2018-02-05 13:49:06
275
空空如也
spring动态多数据源切换失败
2019-05-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人