Java
文章平均质量分 54
Biturd
这个作者很懒,什么都没留下…
展开
-
AWS S3 对象存储协议
S3 Simple Storage Service 简单存储服务S3理论上是一个全球存储区域网络 (SAN),它表现为一个超大的硬盘,您可以在其中存储和检索数字资产。但是,从技术上讲,Amazon 的架构有一些不同。您通过 S3 存储和检索的资产被称为对象。对象存储在存储段(bucket)中。您可以用硬盘进行类比:对象就像是文件,存储段就像是文件夹(或目录)。与硬盘一样,对象和存储段也可以通过统一资源标识符(Uniform Resource Identifier,URI)查找。操作:https://b原创 2022-05-06 15:53:34 · 2810 阅读 · 0 评论 -
Java 生成微信扫描的二维码,跳转到指定网址,图片增加二维码及文字水印
两种场景:1、图片海报中加二维码2、二维码中间加入指定图标/** * @description 二维码控制器 */@RestControllerpublic class QrcodeController { @Autowired ResourceLoader resourceLoader; /** * todo 每个用户一张二维码,里面的信息就是邀请码或者是userid * * @param userid MREAM5 *原创 2022-05-03 16:32:17 · 4100 阅读 · 4 评论 -
2022 IDEA 不编译整个工程 只编译单个Java文件
背景:工程里面其他有好多编译报错,但是我只想当前文件编译运行不受影响。1. 编译单个的Java文件2. 更改运行配置![原创 2022-04-10 03:26:45 · 8375 阅读 · 4 评论 -
G1调优常用参数及其作用
暂停时间:用-XX:MaxGCPauseMillis来指定,默认值200ms。这是一个软性目标,G1会尽量达成,如果达不成,会逐渐做自我调整。对于Young GC来说,会逐渐减少Eden区个数,减少Eden空间那么Young GC的处理时间就会相应减少;对于Mixed GC,G1会调整每次Choose Cset的比例,默认最大值是10%,当然每次选择的Cset少了,所要经历的Mixed GC的次数会相应增加。同时减少Eden的总空间时,就会更加频繁的触发Young GC,也就是会加快Mixed GC的执行.转载 2022-03-25 15:23:49 · 826 阅读 · 0 评论 -
Java开发常见知识[方便开发或者一些常见的坑]
BeanUtils.copyProperties(packedDTOS.get(0), docContent)Bean拷贝实体类的属性可以避免很多赋值,但是注意在dest元素有值的时候,不要覆盖。likeBOs != null && !likeBOs.isEmpty() 。List判空缩写等价于 !CollectionUtils.isEmpty(likeBOs)常识: 空指针异常在很多语言中,都是运行时异常,注意判空。要不后面测试或者上线的时候就是灾难。在哪一层判空,在Contr.原创 2022-03-04 03:36:18 · 322 阅读 · 0 评论 -
Arrays.asList()使用及缺陷
Arrays.asList() 返回的List是一个残疾版的ArrayList[内部的一个静态类]。不能插入和删除。 但是这个list跟原本的数组关联,是同一个引用。底层是一个定长数组。使用ArrayList包装一下List list = new ArrayList<>(Arrays.asList(1,2,3));Google Guava等工具包提供了Lists类,比如 guava的newArrayList方法。guava的其他使用https://www.cnblogs.co原创 2022-03-04 02:43:10 · 233 阅读 · 0 评论 -
springboot整合 数据框架springjdbc、mybatis、jpa and druid 连接池 and http请求 httpclient、resttemplate
总目录1.数据库连接1. 原始的jdbc2. spring封装的jdbc3. orm框架:3.1 mybatis3.2 spring data jpa3.3 hibernate4.连接池:4.1 c3p0连接池4.2 druid连接池4.3 hikari连接池2. http请求1. jdk原生的client2. httpclient3. resttemplate4. feign1.数据库连接1. 原始的jdbc2. spring封装的jdbc3. orm框架:3.1 mybatis3.2 spr原创 2021-12-14 12:14:19 · 1327 阅读 · 4 评论 -
浅入不出设计模式---1、概览
1. 设计模式分类从范围上分为两类:类[通过对象关系建立,编译时就确定下来的] (几乎所有模式都用了继承,所以类模式只指那些集中于处理类间关系的模式)对象[在运行时可以变化,更具有动态性]从使用场景分为三类:创建型[类模式将对象的部分创建工作延迟到子类,对象模式将对象的部分创建延迟到另一个对象中]、结构型[类模式使用继承组合类,对象模式描述了对象的组装方式]、行为型[类模式使用继承描述算法和控制流,对象模式描述了一组对象怎样协作完成单个对象无法完成的任务]2. 设计模式之间原创 2021-10-03 14:19:17 · 59 阅读 · 0 评论 -
Java日志框架 总结 slf4j、log4j、logback
Java日志技术1.日志的概念1.1 日志文件种类调试日志系统日志2.Java日志框架2.1 为什么要使用日志框架软件复杂,设计的知识、内容、为题太多。小系统不需要使用日志框架, 使用别人的框架你就可以集中精力完成系统的业务逻辑。2.2 流行的日志框架[日志门面技术]日志门面技术,就是面向接口编程。多种日志框架无缝切换。[类似JDBC]冷门:JCL是门面技术但也提供了实现,slf4j也提供了实现但是也不用。log4j是实现技术但也提供了门面API但是一般也不用 。2.原创 2021-09-12 23:05:13 · 518 阅读 · 0 评论 -
编程语言分类
编译时就知道变量类型的是静态类型;运行时才知道一个变量类型的叫做动态类型。不允许隐式转换的是强类型,允许隐式转换的是弱类型。编译型。编译型语言,目标计算机以编译语言直接翻译程序。而对于解释型语言,源代码不会直接由目标计算机翻译,而是由 另一个 程序(即解释器)读取并执行代码。详细:https://www.zhihu.com/question/420516398...原创 2021-08-03 14:33:56 · 56 阅读 · 0 评论 -
一文搞懂分布式应用中的熔断器、断路器
熔断器是当依赖的服务已经出现故障时,为了保证自身服务的正常运行不在访问依赖的服务,防止雪崩效应使用场景举个例子:服务A调用服务B时,B的故障会导致A的故障。因为A调用B然后一直阻塞没有响应,资源被占用得不到释放。两种分布式高可用的做法限流器:服务B使用限流器限制A的请求量,从而导致过多的请求导致处理不过来导致宕机。【作用于被调用者(B)】熔断器:服务A调用B的时候,如果B已经挂了,虽然B可能使用限流器什么的做到高可用,但是万一停电了或者其他的原因反正就是不可用了。A调用得到错误时就要使用熔.原创 2021-07-04 23:37:56 · 841 阅读 · 0 评论 -
Mybatis-plus 快速上手
前半年的时候上家实习公司写数据库相关是用的MP,但是 这家公司又用的MyBatis, 但是最近又想换回MP, 感觉虽然拾起来很快但是,还是想针对这种这种技术栈写一系列, 快速上手或者快速拾起来的文章. 后续也方便自己使用。MyBatisPlus插件DAO层// 感觉DAO层只有MyBatis-Plus的不满足了,或者你想定制SQL时候使用。Service层// Service层包含了Dao层的实现,所以感觉如果没有特别有必要,能在Service层把逻辑写完就不要下沉到DAO层了。@S原创 2021-02-03 16:52:17 · 131 阅读 · 1 评论 -
jpa和mybatis支持Java枚举类型
1. JPA @Enumerated(EnumType.INTEGER) private Integer status;2. MyBatismybatis对枚举类型提供了两种处理器:org.apache.ibatis.type.EnumTypeHandler【枚举实例转换为实例名称的字符串】org.apache.ibatis.type.EnumOrdinalTypeHandler 【将枚举实例的ordinal属性作为取值,取到实际的值】 </resultMap&g原创 2021-02-02 18:21:56 · 417 阅读 · 0 评论 -
log4j2 配置文件,指定打印sql语句与参数
1. 指定console在节点中加入一个专用的console,appenders这个元素是用来指定输出流的。【文件、控制台】。【因为同事定义过了console,并且过滤级别为warn,为了不影响他,我还是自己定义一个吧。。其实也可以改上面的那个级别。】 <console name="SqlConsole" target="SYSTEM_OUT"> <!--输出日志的格式--> <PatternLayout .原创 2021-01-22 15:51:14 · 3652 阅读 · 0 评论 -
from classloader hierarchy java.io.FileNotFoundException javax.xml.bind:jaxb-api
太他娘的邪门了解决方案:在springboot启动类加个bean @Bean public TomcatServletWebServerFactory tomcatFactory() { return new TomcatServletWebServerFactory() { @Override protected void postProcessContext(Context context) {原创 2021-01-20 15:52:04 · 714 阅读 · 0 评论 -
Maven问题,吐了吐了
每次需求开发前,都得先搞半天maven问题。编译问题【编译出错】,找不到类,【kt、scala和Java混合开发特别容易出现】。依赖冲突静态资源打包问题这次遇到的是1,真就是玄学问题。。clean install了四五次,调了半天没用。重启idea, clean install 成功。...原创 2021-01-20 15:35:40 · 67 阅读 · 0 评论 -
MyBatis优雅的批量插入
数据库默认每一条指令是一个事务,所以直接执行等于说是O(n)次的开启事务,事务提交。批处理时,把每次提交的信息都缓存到了本地,及时提交防止OOM @Resource PlagiarismAuditMapper plagiarismAuditMapper; @Resource private SqlSessionFactory sqlSessionFactory; private final static int CUR_MAX_CAPACITY = 500;.原创 2021-01-19 15:39:55 · 278 阅读 · 0 评论 -
FactoryBean作用
是注入Bean的一种方法。除此之外还有xml配置@Bean [可以增强第三方框架] [new一个类然后返回]@Component[可以增强第三方框架]@Bean和它的区别是不能继承。比如mybatis源码里面的原创 2020-12-29 14:24:02 · 362 阅读 · 1 评论 -
Java刷leetcode--121.买卖股票的最佳时机
//给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 //// 如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 //// 注意:你不能在买入股票前卖出股票。 //// //// 示例 1: //// 输入: [7,1,5,3,6,4]//输出: 5//解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。// 注意利润不能是 7-1原创 2020-11-19 15:40:09 · 114 阅读 · 0 评论 -
传统必会算法--归并排序
/** * @Program: EasyLeetcode * @Description: MergeSort * @Author: Biturd * @Date: 2020-07-07 22:46 */public class MergeSort { public static void main(String[] args) { int[] input = new int[]{ 3, 5, 4, 1, 2 };原创 2020-07-08 14:52:18 · 121 阅读 · 0 评论 -
package org.springframework.web.bind.annotation does not exist
报错信息:[ERROR] /var/jenkins_home/workspace/prod-ops/dasca-db/src/main/java/com/biturd/controller/DbRestController.java:[5,1] package org.springframework.web.bind.annotation does not exist这是linux系统maven编译的一个bug。我一开始怀疑maven版本了好久。。。解决办法:在原来报错的项目中的pom.xml中加入依原创 2020-08-25 09:36:13 · 1545 阅读 · 0 评论 -
No instances available for localhost restTemplate问题解决
加了ribbon的注解后,restTemplate 会走这个类RibbonLoadBalancerClient。所以需要找服务中心问所有的这个功能的服务。参考:https://blog.csdn.net/November22/article/details/54612454?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_s..原创 2020-08-19 15:03:47 · 1776 阅读 · 5 评论 -
maven用久后必须了解的phase、goal参数及生命周期概念
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-source-plugin</artifactId> <version>2.2.1</version> .原创 2020-08-11 23:15:40 · 7573 阅读 · 1 评论 -
maven插件 dockefile完整代码配置流程实例
dockerfile 插件 (上面的是docker插件,推荐用这个)前提准备:maven的机器上已经配置好了DOCKER_HOST, 不管是windows还是linuxFROM java:8ARG JAR_FILEADD target/${JAR_FILE} app.jarENTRYPOINT ["java", "-jar", "/app.jar"]setting.xml <server> <id>registry.cn-hangzhou.aliyun原创 2020-08-11 22:43:49 · 276 阅读 · 0 评论 -
springboot+jpa快速搭建web项目
1. 设计表idea左面的实体类必须连接一下。[需要idea连接上数据库]2. 实体类package com.biturd.logintest.entity;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;import javax.persistence.Table;/** * @Program: login-test * @Descripti原创 2020-08-11 14:51:16 · 557 阅读 · 0 评论 -
Springboot+Docker+Maven插件
1. 待部署的服务器(生产环境)上配置好远程访问2. maven构建所在的服务器上(或者jenkins容器里),配置好一个host3. pom.xml Maven插件相关配置 <properties> <docker.image.prefix>registry.cn-beijing.aliyuncs.com</docker.image.prefix> <docker.image.midfix>wheatdr-cl原创 2020-07-31 11:26:09 · 807 阅读 · 0 评论 -
传统必会算法--快速排序
指定最后一个元素是privot [遍历前面的与他比较],counter表示雄安与privot的元素的个数,如果当前 i 的值小于privot则 交换counter位置与 i 位置的元素[通过这样遍历完毕则前counter全都小于privot],并且counter++,然后只需要最后一轮交换privot与counter的元素public class QuickSort { public static void sort(int[] input, int begin, int end) {原创 2020-07-07 21:57:10 · 184 阅读 · 0 评论 -
6月17日 查漏补缺
一、刚开始让自我介绍说了一下姓名,学校[该不该说名字,尬死了。。],然后说了一下大学的经历。从大二开始在实验室 做过什么项目名、。之类的。说一下项目,说感觉最有用的学到最多的还有过程咋麦穗识别那个。然后mongo 联表、spring data mongo,又讲了一下我的设计思路,技术选型。我也不知道听懂了没他,,他也不问我,也不拆穿我,,我也不知道说错没。。服了。二、技术问题1. Java1.1 Object的方法有哪些。答:clone、equals、hashcode。[卧草,这个不应该说的这原创 2020-06-17 21:04:58 · 115 阅读 · 0 评论 -
SpringData使用ES报错 org.elasticsearch.index.mapper.MapperParsingException: No type specified for field
原因就像mysql的字段要跟Java基本类型对应一样,ES的字段也要与Java的基本类型相对应。一、而且这个最好新建一个ES索引库,否则可能会有问题。我用Restful操作初始化了一个ES索引库,并增加数据,再用Java操作的时候,Springboot启动会报错。二、还有就是实体类的Document注解indexName、Type都要有需要检索的字段@Field(index=true),并且设置type = FieldType.Text。package com.wheatdr.search.po原创 2020-05-15 14:40:56 · 2624 阅读 · 0 评论 -
Java Selenium 爬取微信公众号文章图片.md
项目地址结尾一、前期准备1. 下载selenium的驱动Chromehttp://chromedriver.storage.googleapis.com/index.htmlFirefoxhttps://github.com/mozilla/geckodriver/releases/IEhttp://selenium-release.storage.googleapis.com/index.html下载好驱动然后放到、对应的浏览器的启动目录[外链图片转存失败,源站可能有防盗链机制,建.原创 2020-05-09 22:04:19 · 981 阅读 · 4 评论 -
Springboot 版本依赖管理
Springboot[官方]如何进行依赖管理涉及到Maven的parent的知识主要是Spring自身还有第三方模块的依赖控制。我们可以如何进行依赖管理wheatdr-dependencies的pom里面增加模仿Spring专门建一个dependencies模块来管理引入Springboot的dependencies,也就是spring-boot-parent的父模块。注意s...原创 2020-05-08 14:47:37 · 1983 阅读 · 0 评论 -
dubbo 问题解决 java.lang.reflect.InvocationTargetException: null
这个问题是因为dubbo的消费者找不到提供者。有多种可能。需要细细分析。楼主这一次的情况是因为yml basePackages属性的问题改为下面的就好了搜索过程中,也了解到 生产者,消费者 service的版本不同也有可能造成此问题过程中我一度以为,是Zookeeper注册中心的问题。。。。。坑死了...原创 2020-04-22 21:16:05 · 5933 阅读 · 0 评论 -
IDEA Springboot项目使用面板管理
1.点击左下角 》》再点击services二、点击加号》》然后在类型中选择springboot[你也可以将比较常用的加到这里面方便使用]原创 2020-04-22 21:07:02 · 977 阅读 · 2 评论 -
docker Zookeeper集群Cannot open channel to 2 at election address Connection refused --问题解决
Zookeeper本机的节点 用 0.0.0.0 IP代替主机名原配置文件version: '3.1'services: zoo1: image: zookeeper:3.4.13 restart: always hostname: zoo1 ports: - 2181:2181 environment: ZOO_...原创 2020-04-22 01:04:21 · 1233 阅读 · 0 评论 -
完美解决maven项目配置文件不生效、更新问题
0.前言三种需求情况[场景]以及解决办法1。不知道为什么配置文件[xml\yml\properties]不生效。[可能是java路径也可能是resource路径]2。Maven项目配置文件 不实时更新3。非resource路径下的配置文件不生效1.把Maven打包方式换成打jar包 pom.xml修改打包方式 <groupId>com.biturd</...原创 2020-04-06 14:59:16 · 16025 阅读 · 3 评论 -
2020面试资源吐血汇总 [ Java ]
1.Java总的提纲https://mp.weixin.qq.com/s?__biz=MzI3NzE0NjcwMg==&mid=2650123276&idx=1&sn=5800cc1e60f64591ae4030e2e5e6b61c&scene=19#wechat_redirect2. Java面试题部分https://github.com/mio4/int...原创 2020-03-20 21:04:00 · 309 阅读 · 0 评论 -
MyBatis(九)、注解开发
注解开发代替的是mapper.xml配置文件,主配置文件不能被替换。使用@results注解解决别名问题和@result注解public interface IUserDao {/*** 查询所有用户* @return*/@Select("select * from user")@Results(id="userMap",value= {@Result(id=true,co...原创 2020-03-19 01:47:40 · 104 阅读 · 0 评论 -
MyBatis(八)、多表查询
写sql语句 sql测试改造实体类,在实体类里面加入需要多表查询查出来的如果是一对一 [把association标签封装进resultMap,传进去另一个实体][实体类多一个实例字段]还有一种实现不常用:要查询的类继承另一个类如果是一对多[把collection标签封装进resultMap,传进入一个集合集合相当于一堆association][实体类多一个List]一对一&l...原创 2020-03-19 01:47:12 · 123 阅读 · 0 评论 -
MyBatis(七)、缓存和延迟加载
MyBatis缓存什么是缓存存在内存中的临时数据。为什么使用缓存减少和数据库的交互次数,提高执行效率。什么情况数据使用缓存适用于缓存经常查询并且不经常改变的数据的正确与否对最终结果影响不大的。[ 数据不一致 ]不适用于缓存经常改变的数据数据的正确与否对最终影响很大的 [ 库存,汇率,股市牌价 ]一级缓存与二级缓存一级缓存:指的是SqlSession对象...原创 2020-03-19 01:46:37 · 133 阅读 · 0 评论 -
MyBatis(六)、事务控制
默认的opensession是开启事务的也可以关闭事务改为自动提交这是我们的 Connection 的整个变化过程,通过分析我们能够发现之前的 CUD 操作过程中,我们都要手动进行事务的提交,原因是 setAutoCommit()方法,在执行时它的值被设置为 false 了,所以我们在 CUD 操作中,必须通过 sqlSession.commit()方法来执行提交操作。Mybatis ...原创 2020-03-19 01:46:07 · 398 阅读 · 0 评论