
java
托尼韦恩
终日而思,不如须臾之所学也。
展开
-
springboot java: -source 1.5 中不支持 diamond 运算符,不支持lambda表达式 解决办法
未指定maven编译的jdk版本。默认maven 使用的jdk版本时1.5。所以报错不支持diamond运算符,不支持lambda表达式指定maven 编译使用的jdk版本即可。springboot项目 修改如下: <properties> <java.version>1.8</java.version> <maven.compiler.source>${java.version}</maven.com原创 2021-05-10 15:02:51 · 581 阅读 · 0 评论 -
动态数据源配置方式及事务处理汇总
参考链接如下:springboot 根据包名区分多数据源springboot 多数源事务管理机制使用dynamic-datasource-spring-boot-starter做多数据源及源码分析浅析动态切换数据源原理springboot2.0使用jta+atomikos解决分布式事务...原创 2021-03-09 15:20:27 · 827 阅读 · 0 评论 -
多线程--锁 详解
多线程–锁 Synchorized1 CAS1.1 CAS概念 CAS 即 (Compare And Swap / Compare And Set /Compare And Exchange)比较并交换,一种实现并发算法时用到的技术,是 JAVA 很多底层并发包的实现原理。1.2 案例先做一个实验,示例如下:public static volatile int v1 = 0; //定义一个共享变量public staic void incease1(){ //自增 v1++;}原创 2021-03-08 20:46:49 · 562 阅读 · 0 评论 -
java命令
java -jar 参数前后位置说明springboot项目启动的时候可以直接使用java -jar xxx.jar这样。下面说说参数的一些讲究1.-DpropName=propValue的形式携带,要放在-jar参数前面 eg:java -Dxxx=test -DprocessType=1 -jar xxx.jar 取值:System.getProperty("propName")2.参数直接跟在命令后面 eg:java -jar xxx.jar processType=1 pr原创 2021-03-03 10:40:51 · 242 阅读 · 4 评论 -
springboot 自动配置
https://zhuanlan.zhihu.com/p/55637237https://blog.youkuaiyun.com/u011320740/article/details/105096461https://www.cnblogs.com/lifacheng/p/12971628.html原创 2021-02-22 16:51:23 · 130 阅读 · 0 评论 -
【知乎】为什么JAVA,wait()要放在while循环里?
作者:Aetherus链接:https://www.zhihu.com/question/439926072/answer/1687513977来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。因为Java有个叫“spurious wakeup”的神奇现象,即线程在不该醒过来的时候醒过来。Oracle官方API文档对java.lang.Object#wait(long, int)方法的描述里有这么一段:A thread can wake up without.转载 2021-02-22 09:49:09 · 399 阅读 · 0 评论 -
Hystrix 断路器状态转换逻辑
Hystrix 断路器状态转换逻辑–正常情况下,断路器关闭,可正常请求依赖的服务–当一段时间内,请求失败率达到一定阈值(例如失败率达到50%,或100次/分钟)等,断路器就会打开。此时,不会再去请求依赖的服务。–断路器打开一段时间后,会自动进入“半开”状态。此时,断路器可允许一个请求访问依赖的服务。如果该请求能够调用成功,则关闭断路器;否则继续保持打开状态。...原创 2021-02-03 16:24:46 · 408 阅读 · 0 评论 -
Eureka自我保护模式
默认情况下,如果Eureka在 一定时间内没有接收到某个微服务实例的心跳,Eureka Server 将会注销该实例(默认90秒)。但是当网络分区故障发生时, 微服务与Eureka Server无法通信,以上行为可能变得非常危险。--因为微服务本身其实是健康的,此时本不应该注销这个微服务。Eureka通过“自我保护模式” 来解决这个问题。当Server节点在短时间内丢失过多客户端(可能发生网络分区故障),那么这个节点就会进入自我保护模式。一旦进入该模式,Server将会保护服务注册表中的信息,不再删原创 2021-01-29 16:29:41 · 415 阅读 · 0 评论 -
Spring Cloud 整合Nacos学习笔记及集群搭建
Nacos1 什么是Nacos?Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。Nacos 无缝支持一些主流的开源生态,例如Spring CloudApache Dubbo and Dubbo MeshKubernetes and C原创 2021-01-29 15:51:48 · 404 阅读 · 0 评论 -
spring cloud 整合 zookeeper及zookeeper集群使用
ZooKeeper1 zookeeper简介ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。ZooKeeper包含一个简单的原语集,提供Java和C的接口。ZooKeeper代码版本中,提供原创 2021-01-27 17:06:07 · 2115 阅读 · 0 评论 -
金丝雀发布
金丝雀发布 这个说法其实来自欧美,以前旷工矿工开矿,在下矿洞时面临的一个重要危险就是矿井中的毒气,于是他们想到一个办法来辨别矿井中是否有毒气,矿工们下矿井时随身携带一只金丝雀(Canary)。由于金丝雀对毒气的抵抗能力比人类要弱,在毒气环境下会先挂掉起到预警的作用,这种风险控制背后的原理暗合灰度发布的根本需求,即:用较小的代价试错,即使出现了严重的错误(出现了毒气),对业务总体的影响也是可承受的或者是非常小的(失去了一只金丝雀)。...原创 2021-01-19 16:52:29 · 1067 阅读 · 0 评论 -
SpringBoot过滤器过滤get及post请求中的XSS和SQL注入
https://www.jianshu.com/p/bec4936d6672转载 2020-12-11 16:23:50 · 2413 阅读 · 6 评论 -
springboot 中CommandLineRunner接口的作用
https://www.jianshu.com/p/13980d3ee7fd先看CommandLineRunner接口的API:import org.springframework.core.annotation.Order;public interface CommandLineRunner { /** * Callback used to run the bean. * @param args incoming main method argument..转载 2020-07-23 16:48:34 · 480 阅读 · 0 评论 -
native关键字
查看object源码中看到native关键字。native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件而是在其他语言(如C,C++)实现的文件中。JAVA语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。JNI是Java本机接口(Java Native Interface),是一个本机编程接口,它是Java软件开发工具箱(Jav...原创 2018-07-06 12:28:33 · 1540 阅读 · 0 评论 -
Mybatis 中$与#的区别
1 #是将传入的值当做字符串的形式,eg:select id,name,age from student where id =#{id},当前端把id值1,传入到后台的时候,就相当于 select id,name,age from student where id ='1'. 2 $是将传入的数据直接显示生成sql语句,eg:select id,name,age from student...原创 2019-02-15 17:21:13 · 2371 阅读 · 0 评论 -
spring boot 设置日志打印mybatis sql
最近使用springboot 想看到具体sql运行情况。经网上查找,发现springboot 自带 日志,只需要 在application.yml简单配置即可打印日志。配置如下 :logging: level: cn.com.xxx.xxx.mapper: debug #打印sql配置 mapper所在的包的位置,配置日志等级debug 当debug启动时,即会 打印sq...原创 2019-03-05 15:13:44 · 14248 阅读 · 2 评论 -
Spring Boot Linux 部署脚本
启动脚本 startup.sh#!/bin/bashPROJECTNAME=sanguo_server_game2pid=`ps -ef |grep $PROJECTNAME |grep -v "grep" |awk '{print $2}'`if [ $pid ]; then echo "$PROJECTNAME is running and pid=$pid...原创 2019-03-15 09:56:30 · 231 阅读 · 0 评论 -
maven的两种可运行jar打包方式。1、内置依赖,2、外部依赖。
转自:https://blog.51cto.com/alex233/1885759maven打可运行jar包的两种方式maven常用的普通打包方式分为pom,jar,war等,至于这些打包类型就不介绍啦。如果不进行特殊配置,那么打包出来的jar包是不可运行的。只能当作普通依赖包使用。下面就介绍两种maven打可运行jar包的方式:方式一:内置打包法...转载 2019-05-23 10:16:53 · 921 阅读 · 0 评论 -
【转】lombok @Accessors用法
转自https://blog.youkuaiyun.com/weixin_38229356/article/details/82937420@Accessors Accessor的中文含义是存取器,@Accessors用于配置getter和setter方法的生成结果,下面介绍三个属性fluent fluent的中文含义是流畅的,设置为true,则getter和setter方法的方法名都是基础属性名,...转载 2019-06-19 17:55:02 · 173 阅读 · 0 评论 -
spring cache 常用注解使用
1、@CacheConfig主要用于配置该类中会用到的一些共用的缓存配置。示例:@CacheConfig(cacheNames = "users")public interface UserService {。。。}配置了该数据访问对象中返回的内容将存储于名为users的缓存对象中,我们也可以不使用该注解,直接通过@Cacheable自己配置缓存集的名字来定义。2、@Cache...转载 2019-06-20 14:45:17 · 221 阅读 · 0 评论 -
AOP中获取controller层 json参数
package com.ck.framework.basicframework.aop;import cn.hutool.core.bean.BeanUtil;import lombok.extern.slf4j.Slf4j;import org.aspectj.lang.ProceedingJoinPoint;import org.aspectj.lang.annotation.Ar...原创 2019-07-02 14:38:19 · 3813 阅读 · 3 评论 -
八月目标梳理
1.空余时间研究quatz框架2.实现 一个单点登陆 为服务(技术选型Spring Security、Shiro比较)3.学习文档输出原创 2019-08-09 10:36:34 · 165 阅读 · 0 评论 -
如何用sql语句复制一张表
1、复制表结构及数据到新表CREATE TABLE 新表 SELECT * FROM 旧表这种方法会将oldtable中所有的内容都拷贝过来,当然我们可以用delete from newtable;来删除。不过这种方法的一个最不好的地方就是新表中没有了旧表的primary key、Extra(auto_increment)等属性。需要自己用"alter"添加,而且容易搞错。2、只...转载 2019-08-09 15:34:38 · 5019 阅读 · 0 评论 -
api接口签名验证(MD5)
转自 https://www.cnblogs.com/jinshui/p/6145167.html 你在写开放的API接口时是如何保证数据的安全性的?先来看看有哪些安全性问题在开放的api接口中,我们通过http Post或者Get方式请求服务器的时候,会面临着许多的安全性问题,例如:请求来源(身份)是否合法? 请求参数被篡改? 请求的唯一性(不可复制)为了保证数据在通信时的安...转载 2018-12-17 10:34:01 · 7751 阅读 · 2 评论 -
linux 环境打包部署 springboot 项目
一、准备 确保linux环境已经安装了适配项目的jdk版本 使用Java -version 命令,查看jdk版本[root@debug010000002015 ~]# java -versionjava version "1.8.0_191"Java(TM) SE Runtime Environment (build 1.8.0_191-b12)Java HotSpot(TM...原创 2018-12-07 14:52:38 · 634 阅读 · 0 评论 -
WebSocket 是什么原理?为什么可以实现持久连接?
最近想学习WebSocket,在知乎上看到一个回答,生动有趣,对于我理解WebSocket很有帮助,想记录在这里,分享给大家。转自知乎 https://www.zhihu.com/question/20215561 高票回答 Ovear的回答,建议大家单击链接去答主的原链接阅读,顺便给答主点赞。 Ovear各种乱七八糟神马的。6,644 人赞同了该回答额。。最高票答案没答...转载 2018-08-04 16:12:21 · 371 阅读 · 0 评论 -
Spring-AOP
动态代理: 相比于静态代理,动态代理在创建代理对象上更加的灵活, 它会根据需要通过反射机制在程序运行期动态的为目标对象创建代理对象, 代理的行为可以代理多个方法,即满足生产需要的同时又达到代码通用的目的。 实现方式: 1、JDK动态代理 1、实现代理对象 需要实现 InvocationHandler 重写 invoke方法 2、程序运行期动态创建代理角色 Proxy.newPro...原创 2018-07-07 09:53:15 · 647 阅读 · 0 评论 -
Spring
Spring的配置文件加载方式 1、 ClassPathXmlApplicationContext 提供相对路径 2、 FileSystemXmlApplicationContext 提供绝对路径 。。。。。 Spring在加载 配置 可以通过多种路径加载 -----------> 设计模式 中间的策略模式 Spring加载多配置文件 App...原创 2018-07-06 12:34:28 · 1402 阅读 · 0 评论 -
Spring 学习总结
IOC(Inversion of Control控制反转):将创建对象的控制权反转给spring,也就是说创建对象的事交给spring 来做。IoC最大的好处是什么?因为把对象生成放在了XML里定义,所以当我们需要换一个实现子类将会变成很简单(一般这样的对象都是实现于某种接口的),只要修改XML就可以了,这样我们甚至可以实现对象的热插拔(有点像USB接口和SCSI硬盘了)IoC最大的缺点是什么?(...原创 2018-07-06 12:32:57 · 1730 阅读 · 0 评论 -
JAVA回顾--JVM--JRE--JDK--java安装
java跨平台的原理:只需要在操作系统总安装JVM,即可运行java程序。0JVM(Java Virtual Machine):java虚拟机。负责java程序在操作系统中运行JRE(Java RunTime Enviroment):java运行时环境,包括JVM和java程序所需要的核心类库。如果想在系统上运行一个开发好的java程序,只需安装jre即可。jre = jvm + java 核心类...原创 2018-07-06 12:31:15 · 1565 阅读 · 0 评论 -
java--继承--三大特性之一
继承(extends):让类与类之间产生关系,子父类的关系继承的好处与弊端:好处:提高代码的复用性提高了代码的维护性让类与类之间产生关系,是多态的前提弊端:类的耦合性增加开发的原则是:1、高内聚,低耦合2、耦合:类与类的联系3、内聚:就是自己完成某件事情的能力继承的特点(掌握):Java只支持单继承,子类只能有一个父类。注:但是java中的接口功能支持多实现Java支持多层继承(爷-父-子)jav...原创 2018-07-06 12:29:43 · 1943 阅读 · 0 评论 -
Object类
Object所有类的父类,所有的类都直接或间接的继承自该类。为什么所有子类的构造方法默认访问的是父类的构造方法?因为子类继承父类,就默认含有父类的公共成员和方法,这些方法在子类中不在重复声明。如果你初始化子类的时候,不初始化父类,那么你通过子类调用父类方法或变量的时候会出现异常。所以,java虚拟机会在你初始化子类的时候默认初始化父类。而且是一层一层往上递进。Object类的hashCode方法:...原创 2018-07-06 12:26:58 · 1396 阅读 · 0 评论 -
StringBuffer类--Arrays类--基本类型包装类
StringBuffer通过JDK提供的API,查看StringBuffer类的说明线程安全的可变字符序列StringBuffer和String的qubie1.String是一个不可变字符序列2.StringBuffer是一个可变的字符序列StringBuffer的添加功能1.public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并...原创 2018-07-06 12:25:45 · 1450 阅读 · 0 评论 -
Set--HashSet--TreeSet
Set无序(位置) 不可重复 ,存取顺序不一致关注如何去重(重点)主要实现类:1、hashSet2、treeSethashSet:使用hashcode()和equals()联合起来去重,先比较hashcode(),在hashcode相同的前提下,再比较equals()1).equals相同,hashcode一定相同2).hashcode相同,equals不一定相同重写hashcode()和equ...原创 2018-07-06 12:24:29 · 1395 阅读 · 0 评论 -
集合--数组--List
数组:集合和数组存储的引用数据类型,存的都是地址值集合框架(集合的由来及集合的继承体系)由来:数组的长度是固定的,当添加的元素超过了数组的长度时需要对数组进行重新定义,太麻烦。java内部给我们提供了集合类,能存储任意对象,长度是可以改变的,随着元素的增加而增加,随着元素的减少而减少。数组和集合的区别:1、数组既可以保存基本数据类型,又可以存储引用数据类型。基本数据类型存储的是值,引用数据类型存储...原创 2018-07-06 12:22:55 · 1558 阅读 · 0 评论 -
Java ConcurrentModificationException异常原因和解决方法
转自 https://www.cnblogs.com/dolphin0520/p/3933551.htmlJava ConcurrentModificationException异常原因和解决方法 在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们...转载 2018-07-06 11:42:45 · 122 阅读 · 0 评论 -
JavaWeb实现文件下载
JavaWeb文件下载功能的实现1.发送请求使用原声XMLHttpRequest请求注意不要使用ajxa请求,原因是:ajax的返回值类型是json,text,html,xml类型,或者可以说ajax的发送,接受都只能是string字符串,不能流类型,所以无法实现文件下载,强用会出现response冲突。2.解析下载文件使用Blob对象Blob简介BLOB (binary la...原创 2018-06-29 17:17:31 · 1566 阅读 · 0 评论 -
JavaWeb实现文件上传功能
JavaWeb实现文件上传功能一、前台1.使用input标签的完成选择文件input 类型设置成file ,前台即可选择文件 <input name="name" type="text" /> <br> <input name="name1"type="text" /&原创 2018-08-08 17:06:09 · 526 阅读 · 0 评论 -
路径正确,但404的问题
今天遇到输入正确路径但是,访问404。原因是,camel.component.servlet.mapping.contextPath 与server.servlet-path冲突导致的 因为使用camel ,camel配置如下camel.component.servlet.mapping.contextPath=/*项目的根servletpath 未配置,即默...原创 2018-12-07 14:43:12 · 8709 阅读 · 0 评论 -
jdbc连接oracle
public static void main(String[] args) { String driver = "oracle.jdbc.OracleDriver"; //驱动标识符 String url = "jdbc:oracle:thin:@localhost:1521:orcl"; //链接字符串 // url ="jdbc:oracle:thin:@10.0....原创 2018-10-22 17:38:28 · 658 阅读 · 0 评论