- 博客(28)
- 收藏
- 关注
原创 手写spring-boot-starter(一学就会系列)
什么是starter呢?Spring Boot 对比 Spring MVC 最大的优点就是使用简单,约定大于配置。不会像之前用 Spring MVC 的时候,时不时被 xml 配置文件搞的晕头转向,冷不防还因为 xml 配置上的一点疏忽,导致整个项目莫名其妙的不可用,顿感生活无所依恋,简称生无可恋。这要归功于组成了 Spring Boot 的各种各样的 starters,有官方提供的,也有第三方开源出来。可以这么说,基本上你打算用的功能都可以找到,如果没有找到,那就再找一找。用 Spring Boot
2021-06-30 17:37:10
1380
原创 TreeSet,HashSet排序和去重的坑
先看下面一段代码:package 类集;import java.util.Set;import java.util.TreeSet;class Person{ private String name ; private int age ; public Person(String name,int age){ this.name = name ; this.age = age ; } public String gtoStr
2021-05-02 18:37:46
501
原创 mbatis plus分页查询
SpringBoot集成mybatis-plus一、导入依赖 <!-- jdbc驱动 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependenc
2021-04-28 11:20:11
560
原创 Mysql中DDL数据定义语言
概述数据库操纵语言DDL,分为两种:⑴对数据库的操作⑵对表的操作一、对数据库的操作:database1.创建数据库的命令:createcreate database hehe2.删除数据库的命令:dropdrop database hehe3.切换数据库的命令:useuse hehe4.数据库改名:rename方法一:RENAME database olddbname TO newdbname这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有
2021-04-28 00:14:53
184
原创 启动jar包时加载外部配置文件
前言当我们把代码打包成jar包时,properties文件是写死在jar包中的,不可修改。一旦我们要修改properties文件,就要再重新打包成jar包,再发布。非常麻烦!可不可以在外部配置properties,启动jar包时加载这个配置文件呢?有!解决方案:1.以Windows为例,准备一个你自己的jar包2.在同目录下,创建一个myApplication.properties内容如下:# 这里书写规则跟正常的application.properties一样server.po
2021-04-27 16:50:17
8260
3
原创 python发送http请求
前言在python中,发送http大多使用requests来发送,因为他使用起来非常方便,代码非常简洁。快速入门1.发送get请求# 导入requests包import requestsurl = "http://www.tuling123.com/openapi/api"myParams = {"key":"username","info":"plusroax"} # 字典格式,推荐使用,它会自动帮你按照k-v拼接urlres = requests.get(url=url, p
2021-04-26 17:17:58
20722
2
原创 python中os.environ的使用详解
1.简介在python 中,通过 os.environ 获取环境变量,什么是环境变量呢?环境变量是程序和操作系统之间的通信方式。有些字符不宜明文写进代码里,比如数据库密码,个人账户密码,如果写进自己本机的环境变量里,程序用的时候通过 os.environ.get() 取出来就行了。这样开发人员本机测试的时候用的是自己本机的一套密码,生产环境部署的时候,用的是公司的公共账号和密码,这样就能增加安全性。os.environ 是一个字典,是环境变量的字典。通过os.environ.get(“HOME”),就.
2021-04-25 10:36:57
67611
5
原创 controller中获取请求头信息
使用@RequestHeader 注解,可以把对应请求头信息获取到。@RestController@RequestMapping("/hehe")public class MyController2 { @RequestMapping("/test3") public void test1(@RequestHeader("Accept") String accept, @RequestHeader("Accept-Language") S
2021-04-18 23:52:45
5527
原创 使用Comparable接口对实体类进行排序(一学就会系列)
前言当前有个需求,有一个User实体类,我想按照年龄对User类进行排序,年龄一样需要按照身高再进行排序,该怎么做?答案:可以让User类实现Comparable接口,排序规则定义在重写的方法里面。引导我们平时对List进行排序,只需调用Collections.sort(list)方法,就能实现对list的排序。这貌似天经地义,他就能实现排序。 @Test public void myTest() { ArrayList<Integer> li.
2021-04-16 11:44:23
787
原创 guava-retrying重试框架(一学就会系列)
前言目前最流行的二大重试框架,其中一个就是谷歌的guava-retrying第一步:创建SpringBoot项目,添加依赖<!-- guava-retrying重试框架--> <dependency> <groupId>com.github.rholder</groupId> <artifactId>guava-retrying</artifactId
2021-04-12 18:47:38
691
原创 使用RestTemplate发请求时自动拼接header信息(一学就会系列)
前言使用SpringBoot自带的RestTemplate发送请求很方便,但是我们经常会在发送请求时带上token信息,直接拼接头信息显得不太优雅。下面使用RestTemplate自带的拦截器,去实现每次发送请求时自动带上头信息。第一步:创建SpringBoot项目,添加依赖 <dependency> <groupId>org.springframework.boot</groupId> <
2021-04-12 13:55:54
2028
1
原创 centos7安装docker详解(一学就会系列)
环境准备,安装docker,linux内核版本必须是3.0以上的版本本文以Centos 7为例查看本机信息uname -r1. 卸载老版本的 docker 及其相关依赖sudo yum remove docker docker-common container-selinux docker-selinux docker-engine2,更新yumyum update 3. 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum
2021-04-07 23:25:58
88
原创 SpringBoot自定义拦截器(一学就会系列)
前言判断用户有没有登录,没有登录就去跳转去登录。这时候我们就选择用拦截器实现。第一步:自定义拦截器实现HandlerInterceptor接口,重写preHandler方法【此方法会在要拦截的方法之前运行,重写它就行了】 返回值如果返回false,拦截器执行完毕之后,不会执行被拦截的controller方法 返回true,当前执行器执行完毕,会去执行被拦截的controller方法public class MyInterceptor implements HandlerIntercept
2021-04-07 15:36:26
443
原创 SpringBoot自定义过滤器Filter(一学就会系列)
1.首先自定义一个过滤器,实现Filter接口2.重写最重要的doFilter方法,里面做一些逻辑,可以获取到请求中携带的所有东西,比如验证token等。如果符合,一定要放行filterChain.doFilter(servletRequest, servletResponse)。3.加上@WebFilter注解,表明这是个过滤器,并且配置上过滤的路径(这个路径是你controller上写的路径。配置好之后,就会过滤这些路径,进入过滤器)4.在启动类上加上@ServletComponentSca
2021-04-07 14:01:20
683
原创 quartz暂停任务恢复之后会把之前的任务重新执行
quartz暂停任务恢复之后会把之前的任务重新执行遇到的问题1.失效阈值概念作用2.超时策略SimpleTrigger立即执行定时任务不立即执行CronTrigger立即执行定时任务不立即执行遇到的问题最近在使用quartz做定时任务,在暂停quartz定时任务后,当你恢复这个任务的时候,它会一股脑的把你暂停之时起,到你恢复时,这期间错过的任务全部执行一遍,这可不是我想要的。下面讲讲怎么样解决首先要先明确几个概念1.失效阈值概念quartz配置中有一个属性叫做misfireThresho
2021-03-18 16:05:33
3059
1
原创 List的toArray()和toArray(T[] a)方法比较(白话文,很好理解)
toArray()方法toArray()方法会返回List中所有元素构成的数组,并且数组类型是Object[]。还要注意一点就是,返回的数组是新生成的一个数组,也就是说,多次运行toArray()方法会获得不同的数组对象,但是这些数组对象中内容一样的。也就是说,toArray()返回的数组是安全的,是深copy出来的新数组,你可以对它进行任意的修改,而不影响原来的数组。List接口的toArray()方法就是直接调用Arrays.copyOf(elementData, size),将list中的元素对象
2021-01-21 11:17:33
947
3
原创 idea 系统找不到指定的路径
在使用idea的时候发现“系统找不到指定的路径”最后发现 如果你在main方法中使用了url地址,那么它默认是从你的Project项目名开始寻找url的,如图:如果你在普通方法中使用了url地址,那么它默认是从你的Moule模块名开始寻找url的,如图:...
2020-04-09 23:37:15
9227
3
转载 Comparable接口中compareTo用法
compareTo就是比较两个值,如果前者大于后者,返回1,等于返回0,小于返回-1,我下面给出了例子,由于比较的变量我用的是int,int型可以直接比较,所有没有用到compareTo比较,如果声明的是Date、String、Integer或者其他的,可以直接使用compareTo比较, public int compareTo(TestModel1 o) { retu...
2020-04-06 12:15:20
793
原创 Can not set int field CustomerBean.Order.orderLocation to java.lang.String
今天学习JDBC的过程中,发下报错如下:最后发现是javaBean中属性的类型和数据库中的字段的类型不一致导致报错时的javaBean:报错时的数据库字段:解决办法:【javaBean中的数据类型】和 【数据库中字段的数据类型】 设置成一样的!...
2020-03-31 12:00:14
1235
1
转载 FileOutputStream,OutputStreamWriter, BufferedWriter有啥区别
FileOutputStream fileOutputStream = new FileOutputStream("d:/text.txt"); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream,"MS936"); BufferedWriter bufferedWriter
2017-08-31 19:53:44
2043
1
原创 setalpha和setimagealpha的区别详解
最近看到关于imageview的透明度的设置,这个两个长得很像,总结一下其中参数 alpha 为透明度,数值越大越清晰~setAlpha 参数是float,值的范围0---1(因为是小数嘛,所以0-1就够表示了)setImageAlpha 参数是int,值的范围0---255(整数大着呢,最大取到255)小窍门 就记住int的范围大(0--255)...
2017-05-21 20:49:23
4092
原创 android案例之图片播放器
很简单的图片播放器,废话不多说了<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="ht
2017-05-21 20:32:49
1121
原创 Toast的两种使用方法(炒鸡详细)
toast是一种非常方便的提示消息框,他会在程序界面上显示一个简单的提示信息,过一段时间会自动消失。使用Toast生成消息提示框也很简单,只要如下几个步骤即可1.调用Toast的构造器或者makeText()静态方法创建一个Toast对象。2.调用Toast的方法来设置该消息提示框的对其方式,颜色,大小,等等。(不写会有默认的,不用担心)3.将Toast对象show出来。
2017-05-21 19:02:25
1404
原创 快速排序(java)
java类Arrays.sort()函数其实就是快速排序得改良版,可以直接使用,下面我就不用这个方法,自己写了一个快速排序的方法,毕竟我们要知道它其中的原理,不能只会用,而要自己明白其中的原理。我用自己的话来说,快速排序就是把数组先分成2个部分,然后4个部分,8个...并排序,最后数组被分的越来越小,从而达到排序的目的。它的思想是把大化小,假如10个数排序不好排序,我把它分块,2个数两个数排序
2016-09-25 12:30:12
256
原创 插入排序(java)
插入排序将数组分为两个部分,一部分是有序的(已排序),一部分是无序的(未排序),插入排序就是将无序的数字依次插入到有序的数组中,最后达到排序的效果。举个例子:1 8 5 2 9第一次从下标为1的开始 然后和他前面的数比较 (我是从按降序排的)8>1 所以交换他俩 变成8 1 5 2 9第二次从下标为2的开始 依次比较他前面的数 5>1 交换 变成8 5 1 2 9依次比较他前面的 5!>8 所以不交换这里就不在累述了...
2016-09-23 15:36:41
191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人