自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(91)
  • 资源 (1)
  • 收藏
  • 关注

原创 mybatis-generator 生成多次重复代码 简单完美解决方案

原因连接的数据库服务器下有多个同名的表Tips:哪怕在url里面配置了数据库名,依然会重复解决方案在mapper-generator-config.xml文件中增加如下配置

2021-01-16 11:12:31 2483 2

原创 insert插入方法 返回自增主键id 方便调用

keyProperty="id" 和useGeneratedKeys="true"作用在使用mybatis时,常常会出现这种需求:当主键id是自增的情况下,添加一条记录的同时,其主键id是不能使用的,当我们取出主键id的值发现id为null,但是有时我们需要该主键,这时我们该如何处理呢?这时我们只需要在其对应xxxmapper.xml中加入以下属性即可:useGeneratedKeys=”true” keyProperty=”id”。<insert id="insertSelective

2021-01-11 11:26:16 1462

原创 JAVA WEB 用户点击按钮,根据URL下载在线文件到客户端 下载文件 下载图片

JAVA WEB 用户点击按钮,根据URL下载在线文件到客户端 /** * 下载图片接口 * @param imgUrl * @return */ @RequestMapping("/download") @ResponseBody public void downloadImg(String imgUrl,String hospitalName, HttpServletResponse response){ try

2021-11-02 15:58:40 371 1

原创 遍历数组中所有元素互相组合的所有可能性

在一个数组中所有元素组合可能性遍历var a=[['a1','a2'],['b1','b2'],['c1']];var r = []; for(i=0; i<a.length; i++) { len = r.length; for(v in a[i]) r.push([a[i][v]]); for(j=0; j<len; j++) { for(v in a[i]) r.push(r[j].concat(a[i][v])); }

2021-10-21 16:37:30 1053

原创 JSR-303 数据校验框架备忘

跳转到这里,写的很详细大佬的浅析JSR303https://www.cnblogs.com/goloving/p/14837990.html?ivk_sa=1024320u

2021-10-18 10:30:47 167

原创 Os7 安装 Chrome浏览器+驱动 配置动态爬虫所需环境

1、驱动不匹配,不能使用驱动解决1:去看一下linux下的浏览器版本查看chrome版本:google-chrome --version驱动,在WIN下解压,用XFTP传到LINUX上报错原因:win解压传到linux上,它是不会被识别为可执行文件的,需要chmod +x 【驱动名】把文件改为可驱动文件当然,也可以锦上添花,加一些软连接unzip chromedriver_linux64.zipchmod +x chromedriversudo mv -f chromedriver /

2021-08-25 15:49:02 308

原创 在LINUX用tomcat的war包部署方式部署项目

1、Maven install项目,2、找到install生成的target包3、将target包下的 项目名命名的文件夹 下复制4、放到linux的tomcat同级的webapps文件夹中5、重新启动tomcat

2021-08-20 14:46:41 160

原创 web Magic报错 NoSuchMethodError NoSuchMethodError: com.google.common.util.concurrent.SimpleTimeLimiter

webMagic爬取动态页问题解决汇总1、web Magic报错 NoSuchMethodError NoSuchMethodError: com.google.common.util.concurrent.SimpleTimeLimiterwebMagic使用selenium的时候遇到报错:java.lang.NoSuchMethodError: com.google.common.util.concurrent.SimpleTimeLimiter.create(Ljava/util/concurr

2021-08-11 15:24:12 983

原创 Nginx多版本并行配置

首先打开Nginx的nginx.conf文件1、在文件的http{}中,先配置开启自定义头功能如果不开启,会出现自定义的header被nginx清空的情况underscores_in_headers on;2、在Server上面添加map集合含义:map [正则验证的变量名] [内容的变量名]{ [正则值] [内容值];} map $http_app_version $app1_url { "1.0" http://120.27.27.31:9993; # 默认ur

2021-07-19 19:30:40 424 1

原创 JVM入门

JVM探究JVM的理解,java8虚拟机和之前的变化更新?什么是OOM,什么是栈溢出StackOverFlowError?怎么分析?JVM的常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?谈谈JVM中,类加载的认识1、JVM的位置2、JVM的体系结构JVM调优百分之99都在堆(Heap),顺便在方法区也有一部分3、类加载器作用: 加载Class文件4、双亲委派机制5、沙箱安全机制6、Native7、PC寄存器8、方法区9 、栈10、三种JVM11、堆

2021-07-02 09:59:09 99

原创 转载:关于websocket依赖注入失败的问题

spring 或 springboot 的 websocket 里面使用 @Autowired 注入 service 或 bean 时,报空指针异常,service 为 null(并不是不能被注入)。解决方法: 将要注入的 service 改成 static,就不会为null了。参考代码:@Controller@ServerEndpoint(value="/chatSocket")public class ChatSocket { // 这里使用静态,让 service 属于类

2021-06-28 11:39:37 766 1

原创 ElasticSearch 入门总结

ElasticSearch的作用大量数据的快速查询模糊查询效率提升一个条件,多个字段的拥有权重的查询,根据权重排序显示高亮显示,支持在匹配搜索值前后增加html标签。常用ElasticSearch的相关软件(插件)Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的ElasticSearch-head就是一个针对es可视化操作的插件ik分词器,顾名思义,用来对ES中文分词来强化功能的ES插件ElasticSearch 基础初学时,可以把ES

2021-06-03 14:08:33 309 1

原创 踏入分布式大门

4大核心问题:客户访问问题:服务间传输协议:服务治理:挂了怎么办:

2021-05-11 16:49:36 64

原创 SpringCloudHystix、DashBoard、Zuul、SpringCloudConfig

应用场景分布式系统中,一个业务流程可能是调用多个微服务串联而完成一条业务。其中的一个微服务出现故障、或长时间未响应,可能会导致前几个微服务中的请求堆积越来越多。增加系统压力,资源的占用,最终可能会导致更多的级联故障,这个时候就需要一个熔断机制来:弃车保帅什么是Hystrix可以理解为一个断路器,在某个服务单元发生故障后,通过断路器的故障监控,向调用方法返回一个服务预期的,可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方法无法处理的异常,这样就可以保证服务调用方不会被长时间不必要的

2021-05-11 13:26:04 75

原创 Java Getter Setter小花活

一个实体类Getter,Setter是最基本的开发常识NullPointerException、Html页面的undefind也是司空见惯的老朋友了烦杂的object.setxxx(); object.setxxxx(); object.setxxxx()……也是各大Service和Controller的常客那么本篇就是来给枯燥乏味的Getter、Setter来一些不一样得颜色首先解决第一个问题对象成员变量的空指针和页面无数据的预防针在get方法中,运用三目运算符给予业务中必填项默认值,这样

2021-05-11 10:04:37 133

原创 dot 三种遍历方式

第一种 普通for循环{{ for(var i=0 ; i < it.length ; i++){}}{{ }}}第二种 增强for循环{{ for(var key in it) { }} <tr><td> {{= it[key].studentCount == null ? '0' : it[key].studentCount }} </td></tr>{{ } }}第三种 forEach循环

2021-04-27 15:16:30 448

原创 IDEA 拉取 Eclipse 多src项目 报错原因汇总

一、多个根源文件,但是IDEA只识别的另一个提示具体体现为:找不到xx符号,缺少类,import爆红,不识别其他src下的类解决方式:将其他需要识别的src文件夹选中,并修改标记为Sources快捷键:Alt+Shift+Ctrl+S二、改了之后,预编译不爆红,但是Maven Install报错具体表现:编译时找不到xx符号解决方法:选择项目,重新Build项目,重新加载即可Maven Install识别新的Sources Root类型文件夹(src)三、如果无法Maven下载依赖

2021-04-21 16:11:53 1061

原创 踩坑 ApiCloud - api.loadSecureValue() 取不到值

第一步:按照APICloud官方文档对照,写法和参数是否有问题loadSecureValue从加密的key.xml文件中读取指定数据,key.xml文件放置于网页包里面的res目录,配置方式:<?xml version="1.0" encoding="UTF-8"?><security><item name="appKey" value="1111111"/></security>语法api.loadSecureValue({params}

2021-04-15 11:34:58 316 1

原创 JS a=a&&b; a=a||b; 赋值 代表什么意思

a=a&&b捞干的说人话:&& 运算符赋值,前面为true就赋值为后参数,前面为false就赋值为前参数// 在JS中 大于0 非空 true !null 都可被理解为truevar a = 1;var b = true;// 而 0,null, false, undefind, ""(空字符串) 都被理解为falsevar c = 0;var d = false;// && 运算符赋值,前面为true就赋值为后参数,前面为false就赋

2021-04-14 14:00:51 1113

原创 Netflix SpringCloud负载均衡 Ribbon Feign

Ribbon是什么SpringCloudRibbon 是 继续Netflix Ribbon 实现的一套客户端负载均衡的工具LB:负载均衡方式:轮询,随机,权重将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)LB分为两种:进程式LB:将LB逻辑集成到消费方,由消费方从服务注册中心知道哪些地址可用,然后自己再从这些地址中选出一个合适的服务Ribbon就属于进程式LB,他只是一个类库,继承与消费方进程,消费方通过它来获取服务器提供方的地址。集中式LB:像Nginx一样,

2021-03-17 16:35:40 103

原创 NetFlix 服务注册与发现 Eureka

Eureka配置环境:【服务端】第一步:配制导入依赖<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId> <version>1.4.6.RELEASE</version> </dependency&gt

2021-03-16 13:54:52 212 1

原创 JS、JQ动态拼接html标签 动态加载 JS加载页面标签 的两种方法

方式给指定标签的中间插入标签<script> var ul= '<span></span>' $(".maplist").append(ul);</script>技巧企业开发中,标签都是很大一坨,建议养成换行的好习惯方法一:直接用''将标签包住,然后用+来进行拼接优势在于如果不用拼接多个var,并且换行习惯好的话,会比较直观<script> //这里的data一般都是Ajax取回来的数据 var mapPointe

2021-03-13 10:56:58 2740

原创 DUBBO+Zookeeper

前提:Zookeeper服务都已开启可以同时开启Dubbo-admin提供者提供服务:1、导入依赖2、 配置注册中心的地址,以及服务发现名,和要扫描的包3、在想要被注册的服务上面,增加一个注解@Service(Dubbo包下)消费者进行消费:1、导入依赖2、配置注册中心的地址,以及服务器发现名3、从远程注入服务 使用@Reference 而不是 @AutowiredTips:这里@Reference注入和注入Service思路一样,但是要注意的是本地一定要创建和提供端同样的接口名

2021-03-01 15:30:56 110 2

原创 SpringBoot 异步任务,邮箱任务,定时任务 实现方法

异步任务:两个地方:1、@Async 在Service的方法上添加该注解2、在启动类上添加@EnableAsync开启异步功能邮件任务:1、导入spring-boot-starter-mail 依赖jar包2、在.properties属性文件中配置#邮箱[email protected]=在qq邮箱设置中获取密钥spring.mail.host=smtp.qq.com#开启加密验证(QQ邮箱需要)spri

2021-03-01 09:52:24 90 1

原创 SpringBoot 两大安全框架 Shiro 和 SpringSecruity

SpringBoot的默认安全技术模块1、需要引入的starterspring-boot-starter-security2、关联到的类WebSecurityConfigurationAdapter: 【适配器模式】自定义Security策略AuthenticationManagerBuilder【建造者模式】自定义认证策略@EnableWebSecurity 开启WebSecurity模式...

2021-02-27 11:00:01 340

原创 Spring 拦截器配置方法

1、首先先写一个拦截器类:需要实现HandlerInterceptorpublic class MineIntegerceptor implements HandlerInterceptor2、重写preHandle等方法,实现功能:登录验证、权限验证等public class MineIntegerceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest r

2021-02-24 09:53:27 1218

原创 SpringBoot mvc的扩展

1、新建一个扩展类 加上@Configuration并实现 WebMvcConfigurer2、@Override其中方法3、需要注意的是:不能引用@EnableWebMvc@EnableWebMvcimport中的类中继承了Support类因为WebMvcAutoConfiguration 中有一个OnMissingBean才会生效如果引入了这个类,自动配置全部崩盘DEMO:@Configurationpublic class MVCConfig implements

2021-02-24 09:37:02 87

原创 Java 一个字段存多个选项 位运算工具类

位运算工具类/** * Java 位运算的常用方法封装<br> * * @author Jian * @date 2012-12-7 * */public class BitUtils { /** * 获取运算数指定位置的值<br> * 例如: 0000 1011 获取其第 0 位的值为 1, 第 2 位 的值为 0<br> * * @param source * 需要运算的

2021-02-23 15:54:03 1012 2

原创 SprinBoot 参数解析原理 -L

请求参数值的多个方式以下所有取值参数,都有两种取的方式:1、@XXX(“xxx”) 对应类型 变量名 取指定单个参数2、@XXX Map<String,String> 变量名 获取所有参数的pv@PathVariable(): 路径变量路径变量样式:/car/{id}/owner/{userName}@RequestHeader请求头@RequestParam请求变量@RequestBodyPOST方法请求体取值就是FormData@CookieValue

2021-02-22 10:23:38 314

原创 SpringBoot 页面请求处理的源码入门

静态/动态资源访问优先找动态资源,再找静态资源静态资源访问前缀 spring: mvc: #这个是静态资源访问的前缀,所有需要访问的前缀都需要拼这个才能访问 static-path-pattern: /res/** resources: #这个是静态资源的规定文件夹,配置后只有该文件夹下才能被访问 static-location: classpath:/res/欢迎页支持方式一: 建一个index.html方式二: 建一个@RequestMapping(“in

2021-02-20 08:14:26 189 1

原创 SpringBoot 配置文件相关

yaml 配置文件(SpringBoot推荐)如同.properties一样 application.yml 和 application.properties会合并配置到项目中yml格式如下1、要缩进对齐2、属性字段为key value键值对":"后面要加空格分开 也就是 key 和 value 要空格分开具体格式: name1: value1 name2: value23、对象及Map表示方式两种: 方式1: User: name: userName age

2021-02-08 15:12:14 93

原创 SpringBoot 底层 starter主程序入门理解

自动依赖pom文件中有一个父项目依赖这个依赖中包含了所有springBoot配置jar所需要的版本<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type

2021-02-08 13:33:33 212

原创 Spring 概念理解

IOC:就是把创建对象的工作交给SPRING来生成,处理,装配IOC的创建时机:在xml配置文件加载的时候,容器中的管理对象就初始化了DI依赖注入:是实现IOC的一种方法。6.1构造器注入6.2Set注入【重点】依赖注入:Set注入依赖 bean对象的创建依赖于容器注入 bean对象大众的所有属性 由容器来注入!【环境搭建】1.复杂类型6.3拓展方式注入...

2021-02-04 10:43:03 103 1

原创 JUC编程Day04 (JMM volatile 锁)

16、JMMVolatile是Java虚拟机提供轻量级的同步机制1、保证可见性2、不保证原子性3、禁止指令重排什么是JMMJVM:JAVA虚拟机JMM:JAVA内存模型-是一个概念,约定,并不实际存在的东西关于JMM的一些同步的约定:1、线程解锁前 必须把共享变量立刻刷回主存2、线程加锁前 必须读取主存中的最新值到工作内存中3、加锁和解锁必须是同一把锁线程:分为工作内存 主内存8种操作:第一组【读取变量】:主内存=>read =>变量=> load

2021-01-28 15:12:09 93

原创 JUC Day03 (阻塞队列、JAVA1.8特性、Stream流式编程、异步回调)

7.Callable(简单)1、Callable 能够返回结果2、能够报异常3、方法与Runable 和Thread不同代码:package Callable;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;/** * @Description: * @Author Bowen *

2021-01-26 13:28:18 176

原创 mybatis批量添加踩坑

有个坑,就是批量添加时,不能动态sql参数必须固定批量添加// 批量增加房源图片(效率高,但是参数不灵活) int batchInsertSelective(List<HousePic> list);<insert id="batchInsertSelective" parameterType="java.util.List"> INSERT INTO house_pic (house_id, house_type, image_url, add_

2021-01-19 19:14:08 666

原创 ajax发送PUT/DELETE(restful风格)请求无法传参的问题

Tomcat把请求的数据(实体信息中的数据)封装成一个Map(键值对形式),request.getParameter(“”)就从map中取值,而SpringMVC会把每个属性的值调用getParameter方法封装,而Tomcat看到是PUT/DELETE请求则不会封装请求数据到map,只有POST,GET形式的请求才会封装到请求体。解决方法1(推荐):JAVA在后台中实现 从URL请求路径获取参数@RequestMapping(value = "/rent/del/{ids}", method =

2021-01-19 10:44:58 256

原创 JUC Day02 (8锁现象,线程安全的集合)

5、8锁现象如何判断锁的是谁?是什么锁?对象:Classsynchronized 锁的是方法的调用者,多个对象之间是不存在竞争关系的类1 对象1 = new 类1构造();类1 对象2 = new 类1构造();对象1.method();对象2.method();对象1和对象2之间是[不存在]锁竞争关系的class 类1{ public synchronized void method(){ }}static synchronized 锁的是类模板,多个对象之间是存在竞争关系

2021-01-14 15:22:59 82 3

原创 JUC并发编程 Day01 (JUC、Lock、生产者和消费者问题、JUC生消问题、Condition)

什么是JUCJava Util Concurrent业务:普通的线程代码不能满足Runable 没有返回值,效率相比于Callable相对较低!java是没权限开启线程的,调用的是底层的C++线程的三种方式Thread Runable Callable并发、并行并发(多个线程操作一个资源)– CPU一核、快速交替并行(多个人一起行走)– CPU多核,多个进程一起执行(提高效率使用线程池即可)并发编程的本质:充分利用CPU的资源所有的公司都很看重的东西线程有几个状态新

2021-01-06 16:55:05 122 1

原创 JAVA 网络编程

网络编程基础网络中要素:IP地址和端口号网络通信协议 udp tcpIPip地址:InetAdressip地址分类:– ipv4 : 127.0.0.1 , 4个字节组成 0-255 42亿个,2011年用尽;– ipv6 : 128位 8个无符号整数IP分公网(互联网)和内网(局域网)公网:分ABCD类内网:192.168.xx.xx...

2021-01-06 14:49:49 85

Java IO 需求开发测试题 带答案 免费分享=w=

题目: 1、业务需求 现有一些从不同网站采集下来的网络资源,需要在网站进行统一展示,但由于内容和格式不一致,所以导入数据库时比较麻烦,现需要将这些资源加工处理成统一格式,方便导入数据库。 2、实现要求 1)文件命名 a)原文件名中带有”-“的,需截取”-“后面的内容作为新的文件名,不带”-“的则保留原文件名。 b)显示新文件夹下的所有文档的行数。 2)文件编码 所有输出文件统一编码为GBK。 3)文件内容 a)去掉所有以”<#”开头的内容(一整行)。 b)去掉文档中的所有空行。 3、提交要求 1)提交可执行的java代码。 2)生成以下效果的文件目录。

2021-03-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除