我们在项目中都会遇到项目打包,可以通过assembly对我们的项目进行打包。1、首先看一下在打包前的项目文件结构。2、在pom.xml中配置assembly插件<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</sour...
继续阅读 >
分类:编程语言
2020
10-09
10-09
Android自定义弹框样式
弹框样式的自定义是通过改变v7包下的AlertDialog的Window对象的view及控制Window的宽高实现的。所有源码如下,其中自定义View的宽度设置为手机屏幕宽度的82%。 importandroid.app.Dialog;importandroid.content.Context;importandroid.support.v7.app.AlertDialog;importandroid.text.TextUtils;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.Window;importandroid.view.WindowMana...
继续阅读 >
2020
10-09
10-09
Shell双引号和单引号有哪些不同
1.示例Shell在使用的过程中,经常会使双引号或者单引号将字符串括起来,也可以不使用引号来定义字符串变量。示例如下:str1="testString"//双引号str2='testString'//单引号str3=testString//无引号因此字符串变量的定义有三种方式,分别是双引号、单引号和无引号。这三种方式有什么区别呢?单引号和双引号又有什么区别呢?2.单引号单引号定义字符串所见即所得,即将单引号内的内容原样输出,或者描述为单引号里面看到的是什么...
继续阅读 >
2020
10-09
10-09
MyBatis-Plus 如何单元测试的实现
最近项目中使用了MyBatis-Plus,点击看官方文档。使用一个新的框架,首先是验证框架的使用。 使用MyBatis-Plus,首先就验证一下能否成功操作(CRUD)数据库。如何通过不用启动项目,然后可以测试MyBatis-Plus查询数据。所以首要想到的是单元测试@Test第一步通过MyBatis-Plus的代码生成工具生成数据库表对应的文件MyBatis-Plus对于单表操作,有一个内置的mapper接口方法,service的接口我暂时没使用并没验证过。使...
继续阅读 >
2020
10-09
10-09
Shell脚本调用另一个脚本的三种方法
假如有脚本first.sh:#!/bin/bash#------------------#@file:first.sh#------------------echo'yourareinfirstfile'如何在其它Shell脚本中调用first.sh呢?主要有三种方法:source、点号以及sh命令。1.source#!/bin/bash#---------------#@file:second.sh#---------------echo'yourareinsecondfile'sourcefirst.sh2.点号.#!/bin/bashecho'yourareinsecondfile'.first.sh注意,点号与脚本文件之间记得要有空格。3...
继续阅读 >
2020
10-09
10-09
springboot启动脚本start.sh和停止脚本 stop.sh的详细教程
我们在项目中都会遇到项目打包,可以通过assembly对我们的项目进行打包。针对打包构建jar包,本文不再叙述。具体可以参考maven插件assembly使用及springboot启动脚本start.sh和停止脚本stop.sh这里面已经有一个springboot的启动脚本了,本文之所以还要写,是因为之前的脚本存在一个问题。关闭脚本的时候是通过kill-9命令进行的,但其实我们项目中可能很多时候不能强制关闭的,在关闭之前需要做一些事情。比如将内存数据存到磁...
继续阅读 >
2020
10-09
10-09
完美解决request请求流只能读取一次的问题
解决request请求流只能读取一次的问题实际开发碰到的问题解决request请求流中的数据二次或多次使用问题实际开发碰到的问题springboot项目中,为了防止sql注入,采用Filter拦截器对所有请求流中的json数据进行校验,请求数据没问题则继续向下执行,在后边的代码中应用到请求参数值时,发现request中的json数据为空;除上边描述的情况,尝试过两次从request中获取json数据,第二次同样是获取不到的。解决request请求流中的数据二次...
继续阅读 >
2020
10-09
10-09
详解python tcp编程
网络连接与通信是我们学习任何编程语言都绕不过的知识点。Python也不例外,本文就介绍因特网的核心协议TCP,以及如何用Python实现TCP的连接与通信。TCP协议TCP协议(TransmissionControlProtocol,传输控制协议)是一种面向连接的传输层通信协议,它能提供高可靠性通信,像HTTP/HTTPS等网络服务都采用TCP协议通讯。那么网络通讯方面都会涉及到socket编程,当然也包括TCP协议。NetworkSocket我们来看看定义:N...
继续阅读 >
2020
10-09
10-09
Android实现随手指移动小球
本文实例为大家分享了Android实现随手指移动小球的具体代码,供大家参考,具体内容如下这个随手指移动小球,首先要使用paint画笔在canvas画布画出一个圆,然后重写OnTouchEvent(),进行小球的坐标的获取和小球的重新绘画。packagecom.bwei.self_view;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;importandroid.support.annotation.Nullable;im...
继续阅读 >
2020
10-09
10-09
你应该知道的这些Mybatis-Plus使用技巧(小结)
最近在用Mybatis-Plus,嗯,真香!!!今天就来说说Mybatis-Plus的那些使用技巧1、条件查询(QueryWrapper)如果说,我们需要查询的SQL语句如下:SELECT*FROMuser_infoWHERE1=1ANDage=20那么对应的代码可以为:QueryWrapper<UserInfo>queryWrapper=newQueryWrapper<>();queryWrapper.eq("age",20);List<UserInfo>list=userInfoMapper.selectList(queryWrapper);以上就是查询用户表,用户年龄大于20的用户信...
继续阅读 >
2020
10-09
10-09
IDEA连接mysql报错的问题及解决方法
IDEA连接mysql报错了!本人之前使用MySQL以及后续使用mybatis和mybatisPlus都是使用sqlyog或者navicat,今天重新学习sql,看到up使用了,idea插件来连接数据库(mysql)也来学习使用了,结果出现一系类问题。本博客开始记录。---------------------------前进的道路充满荆棘。---------------------------------------------------------------------------错误界面连接报错了,分析下跟翻译是因为jar包不一致。因为本地的mysql是8...
继续阅读 >
2020
10-09
10-09
通过高德地图API获得某条道路上的所有坐标用于描绘道路的方法
产品提出的一个需求是,通过道路名字,把道路描绘出来.这功能在各大地图上都是可以看到的,所以他们觉得做出来也很简单.但是百度地图本身是没有任何接口可以查询这个信息.网上能找到的方法,无非都是通过导航接口,定义道路的起点和终点进行描绘.但这种方法只要仔细推敲就有不妥:如果道路有分岔怎么办?每个分岔口都找出来然后不断调用导航接口吗?如果道路是弯曲而不是直线怎么办?导航走的是最近线路,不一定...
继续阅读 >
2020
10-09
10-09
linux两台服务器实现自动同步文件
服务器B(172.17.166.11)上开机或者重启会自动拉取服务器A(172.17.166.10)上指定目录下所有文件1、创建服务器B到服务器A的互信(1)服务器B上执行ssh-keygen-trsa一路回车(2)服务器B上执行ssh-copy-id-i172.17.166.10回车输入服务器A的密码(3)在服务器B上执行ssh172.17.166.10验证是否可以免密登录到服务器A2、服务器B上创建目录结构如下[root@w-11home]#treeshellshell├──logs----目录└──pull_170...
继续阅读 >
2020
10-09
10-09
Python rabbitMQ如何实现生产消费者模式
(一)安装一个消息中间件,如:rabbitMQ(二)生产者sendmq.pyimportpikaimportsysimporttime#远程rabbitmq服务的配置信息username='admin'#指定远程rabbitmq的用户名密码pwd='admin'ip_addr='10.1.7.7'port_num=5672#消息队列服务的连接和队列的创建credentials=pika.PlainCredentials(username,pwd)connection=pika.BlockingConnection(pika.ConnectionParameters(ip_addr,port_num,'/',credentials))...
继续阅读 >
2020
10-09
10-09
Java封装统一的Result Model案例
在开发过程中,有时候会需要使用错误码+错误信息的形式,来返回某些业务操作的错误结果信息,来代替效率较低的异常传递。这样就需要封装一个统一的Resultmodel作为返回值,代替直接返回数据等结果。1.定义错误码-错误信息接口错误码可能是String、Integer、Long等类型,也可能是enum类型。因此这里使用泛型来代替,错误码类型,可以提高灵活性。也可以通过枚举直接实现CodeMessage接口。publicinterfaceCodeMessage<C>{Cg...
继续阅读 >
2020
10-09
10-09
Node.js 中判断一个文件是否存在
记录一些Node.js应用中的小知识点,如果你Google/Baidu“Node.js如何判断文件是否存在”发现给出的很多答案还是使用的fs.exists,这里不推荐使用fs.exists你可以选择fs.stat或fs.access。为什么不推荐fs.exists我们在设计一个回调函数时,通常会遵循一个原则“错误优先的回调函数”,也就是返回值的第一个参数为错误信息,用以验证是否出错,其它的参数则用于返回数据。如下所示为fs.exists的使用示例,直接返回...
继续阅读 >
2020
10-09
10-09
Android实现图片浏览并改变透明度
本文实例为大家分享了简单的图片浏览器制作,供大家参考,具体内容如下例子中的图片浏览器既可以改变图片的透明度,也可以根据用户在图片上选定的某一区域,对其进行显示,用于查看图片的局部细节。在activity_main.xml中:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://sc...
继续阅读 >
2020
10-09
10-09
利用Python的folium包绘制城市道路图的实现示例
写在前面很长一段时间内,我都在研究在线地图的开发者文档,百度地图和高德地图的开发者中心提供了丰富的在线地图服务,虽然有一定的权限限制,但不得不说,还是给我的科研工作提供了特别方便的工具,在博客前面我先放上这两个在线地图开放平台的webAPI的地址链接:百度地图开放平台高德地图开放平台基于这两个平台,博主进行了一系列的开发研究工作,本文介绍其中一项技术,如何用folium包绘制城市道路图,当然,也可绘制非城市...
继续阅读 >
2020
10-09
10-09
python中使用正则表达式将所有符合条件的字段全部提取出来
问题如标题,使用正则表达式匹配字段目前无非就三种,分别是:re.match()re.search()re.findall()简单介绍一下,re.match()与re.search()非常类似,主要区别就是前者是从目标字符串的开头匹配,而后者则要没有这个要求。而re.findall()则是可以返回匹配的所有结果。但是有时候re.findall()返回的结果和前面两个并不一样,我们来看下面一个例子:对于句子:起病以来,患者无腰背痛、颈痛,无咽痛、口腔溃疡,无光过敏、脱发,无口干、眼...
继续阅读 >
2020
10-09
10-09
深入分析python 排序
排序是每个开发人员都需要掌握的技能。排序是对程序本身有一个全面的理解。不同的排序算法很好地展示了算法设计上如何强烈的影响程序的复杂度、运行速度和效率。今天的文章和谈谈大家都熟悉的各种排序使用Python如何实现,废话就不多说啦,开干!选择排序选择排序一般是将初始值设为初始值,再循环后面每个元素与第一个元素比较,最终筛选出一个最小或最大值,最后将有序的数值排在前面,每次选择当前序列的最小值,将其与当前序...
继续阅读 >
2020
10-09
10-09
Android绘制跟随手指移动的小球
为了实现一个跟随手指移动的小球,考虑到开发自定义的UI组件,这个UI组件将会在一个指定的位置绘制一个小球,这个位置可以动态改变。当用户手指在屏幕上拖动时,程序监听到这个手指的动作,并且传入UI组件,通知组件重绘即可。话不多说,上代码:在java的DrawView中:packagecom.example.test01;importandroid.content.Context;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;imp...
继续阅读 >
2020
10-09
10-09
java方法通用返回结果集封装操作
我们在封装方法的时候,有的时候除了需要返回数据结果集data,有的时候需要返回code(或者status)或者msg,此时可以采取下面两种方式进行封装方法的返回值:一.返回结果使用HashMap接收1.方法中的数据封装到hashmap中publicMap<String,Object>result(Objectobject){Map<String,Object>result=newHashMap<String,Object>();result.put("status","1");result.put("msg","成功");if(条件1不通过校验){...
继续阅读 >
2020
10-09
10-09
超级实用的8个Python列表技巧
列表(List)是你使用Python过程中接触最为频繁的数据结构,也是功能最为强大的几种数据结构之一。Python列表非常的万能且蕴含着许多隐藏技巧,下面我们就来探索一些常用的列表技巧。一、列表元素的过滤1.filter()的使用filter()函数接受2个参数:1个函数对象以及1个可迭代的对象,接下来我们定义1个函数然后对1个列表进行过滤。首先我们创建1个列表,并且剔除掉小于等于3的元素:回顾一下发生了什么:我们定义了列表original_list...
继续阅读 >
2020
10-09
10-09
Android实现进度条(ProgressBar)的功能与用法
进度条(ProgressBar)的功能与用法,供大家参考,具体内容如下进度条是UI界面中一种实用的UI组件,用于显示一个耗时操作显示出来的百分比,进度条可以动态的显示进度,避免是用户觉得系统长时间未反应,提高用户的体验。下面程序简单示范了进度条的用法,界面布局文件如下:在layout下的activity_main中:<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/androi...
继续阅读 >