java
java后端技术学习记录
周末吃鱼
这个作者很懒,什么都没留下…
展开
-
Fegin Client添加Header
fegin header原创 2023-10-17 17:09:00 · 1320 阅读 · 0 评论 -
RSA 公私钥加解密Java实现
RSA加解密原创 2022-10-09 14:40:11 · 7242 阅读 · 2 评论 -
Stream toMap IllegalStateException:Duplicate key
集合进行stream操作,Collectors.toMap转换成map时,如果list集合中有重复数据,更确切的说,是作为key的实例的属性值,存在重复,下面的写法就会报错:List<User> a = new ArrayList<>();for (int i=0;i<5;i++) { User u = new User(); u.setName("a"); u.setHome("b");原创 2022-01-06 09:22:20 · 1222 阅读 · 0 评论 -
Integer 源码解读
首先看一下Integer的数值范围是最大值为2^31-1,最小值为-2^31 /** * A constant holding the minimum value an {@code int} can * have, -2<sup>31</sup>. */ @Native public static final int MIN_VALUE = 0x80000000; /** * A constant holdi原创 2021-02-19 16:29:22 · 91 阅读 · 0 评论 -
通过反编译,查看Integer的自动装箱和拆箱
1.Integer和int有什么区别呢。在jdk5开始,为了方便变成,对Integer和int支持了自动装箱和拆箱。2.自动装箱(语法糖)和拆箱是指在编译阶段,Integer和int写法的语法会编译成同样的字节码。3.将这段代码编译成class文件。编译方式有很多种,可以直接打开Java类所在文件夹,shift+鼠标右键进入命令模式,通过javac命令来编译。也可以通过idea的自带组件,或者写命令来实现。public class JustTest{ public void test原创 2021-02-19 15:07:54 · 275 阅读 · 0 评论 -
volatile到synchronized到锁的升级过程
学习笔记,仅供参考,不喜勿喷1.多线程并发问题java内存模型,每个线程都有自己的工作内存,同时还有一个共享主内存。线程要将主内存的数据加载到自己的工作内存才能使用。当两个线程的工作内存都加载了主内存中的data数据时,线程1修改了data的值,2.synchronized锁...原创 2021-04-01 16:00:09 · 140 阅读 · 0 评论 -
JAVA基础-线程池篇
ThreadPoolExecutor构造器public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue<Runnable>.原创 2021-08-15 00:01:09 · 85 阅读 · 0 评论 -
Eureka包冲突
1.报错Failed to start bean 'eurekaAutoServiceRegistration'; nested exception is java.lang.NullPointException2.原因包冲突建包时,包<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netf原创 2021-08-29 18:13:25 · 299 阅读 · 0 评论 -
CAS到AQS
CAS(Compare And Set)Atomic原子类,无锁化CAS机制,通过CAS机制保证多线程修改一个数值的安全性。发起CAS比较这个值有没有被修改过,这个CAS是原子的,不会被打断。如果值已经被修改了,导致CAS失败,失败后,进入循环,再次获取值,再次CAS.JAVA8对CAS机制的优化如果大量线程同时并发修改一个AtomicInteger,可能会造成很多线程不停的自旋,进入一个无限重复的循环中。Java8推出新类,LongAdder,使用分段CAS以及自动分段迁移的方式来原创 2021-04-02 15:05:28 · 94 阅读 · 0 评论 -
百度智能云-短信集成-java-jdk8
1.百度智能云短信集成,提供了默认的sdk,不过这个sdk需要用到jdk中的jdk.tools,所以jdk11没法用sdk.maven集成 <dependency> <groupId>com.baidubce</groupId> <artifactId>bce-java-sdk</artifactId> <version>0.10.154&.原创 2021-03-11 16:05:57 · 1140 阅读 · 0 评论 -
springboot单点登录后,service url后携带;jsession=123456
在进行单点登录集成的时候,偶尔会有服务登录成功后,url后携带;jsessionid,会造成很大的问题;这是Spring 对session跟踪机制,(cookie,URL重写,表单隐藏字段)设置server.session.tracking-modes=cookie在客户端即可解决。这是springboot的玩法因为本身单点功能是使用的cookie机制,所以直接设置成cookie即可解决问题。...原创 2021-02-02 14:42:03 · 343 阅读 · 0 评论 -
java子包引用不到父包的dependency
为了避免重复引包,一般共用包放入父包中。1.pom嵌套parent child1 child2 grandson1 grandson2<parent> <groupId>com.enjoy</groupId> <artifactId>Parent-Moduel</artifactId> <version>3.0.0&...原创 2021-01-21 10:17:18 · 833 阅读 · 1 评论 -
父子包方式class.getPackage().getImplementationVersion()方式获取不到版本号
项目获取版本号的方式,是通过定义类的static方法获取的public class TestVersion { private TestVersion() { // this class is not instantiable } /** * Return the full CAS version string. * * @see Package#getImplementationVersion */ pub原创 2021-01-07 17:54:24 · 1212 阅读 · 0 评论 -
Springboot 做mybatis
集成:1.创建实体类,包含基本的用户对象信息。Userid 主键id name 用户名 organ 组织 表设计的很烂。2.引入必要的包 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter&...原创 2020-12-22 10:17:11 · 73 阅读 · 0 评论 -
String.format和StringBuffer拼接字符串
拼接字符串的效率public class JustTest { public static void main(String[] args) { System.out.println("Start:" + System.currentTimeMillis()); String result = String.format("%s:%s","a","b"); System.out.println("End" + System.curren原创 2020-12-03 10:46:04 · 641 阅读 · 0 评论 -
unmodifiableMap不是绝对的不可修改
Collections.unmodifiableMap(map);Collections.unmodifiableList(list);这样返回得到的map和list只是相对的不可修改。不可修改的是map对象和list对象本身,即不能对map和list进行添加和删除了。但是map和list中存储的对象内容是可以修改的。 public static void main(String[] args) { User zhangsan = new User(); .原创 2020-09-16 10:29:36 · 1486 阅读 · 0 评论 -
SpringBoot properties属性的注入
SpringBoot属性绑定规范比较宽松,如果Bean中name为authorName,那么,可以采用如下四种方式:author_nameauthor-nameauthorNameAUTHORNAME通过@ConfigurationProperties中的prefix描述配置文件的前缀@ConfigurationProperties(prefix="book")...原创 2019-09-23 13:28:43 · 753 阅读 · 0 评论 -
谷歌身份验证器 java demo实现 及使用中问题分析
最近公司新进项目需求:谷歌身份验证器来做一个二次因素校验,查了很多网上的例子,也自己写了demo,其中遇到了些问题,记录一下:1.谷歌身份验证器原理简单说明2.谷歌身份验证器的使用流程3.谷歌身份验证器使用需要引入的jar包4.谷歌身份验证器server端代码5.谷歌身份验证器test端代码6.谷歌身份验证器server端校验code要求传long型数据,如果验证码为002...原创 2019-04-16 15:43:51 · 5698 阅读 · 0 评论 -
Redis使用kryo来进行序列化遇到的问题
1.通过spring-data-redis集成redis,使用kryo的方式来序列化value值,kryo是一款高性能的序列化反序列话工具,具体要引入的jar包可以参看https://mvnrepository.com/artifact/com.esotericsoftware/kryo需要导入的jar包有<dependency> <groupId>c...原创 2019-04-09 14:42:44 · 2553 阅读 · 0 评论 -
cookie中存储的值设置httponly和secure
最近公司的项目有要求将sessionid做成httponly和secure可配置的设定。首先什么是httponly和secure呢?是cookie中的两个属性当设置了httponly为true时,通过js脚本是无法获取到cookie的信息的。防止XSS攻击。secure为true时,服务只能通过https来进行cookie的传递,使用http服务无法提供服务。设置sessionid...原创 2019-02-27 23:12:07 · 5993 阅读 · 0 评论 -
集成企业微信,企业微信扫码登录和企业微信容器内免密登录
项目上为了支持新的业务,扩展了通过企业微信扫码登录和通过企业微信容器内的直接访问应用服务的免密登录。1.扫码登录企业微信以Userid作为企业内的用户身份唯一标识,集成接口可以参考官网文档:https://work.weixin.qq.com/api/doc#90000/90135/909881)扫码登录首先要构建登录二维码链接这部分要在访问登录页面login时生成,并提供链接...原创 2019-02-21 10:58:37 · 4755 阅读 · 0 评论 -
spring data redis 通过kryo进行序列化遇到的问题和解决问题的过程
改造项目redis的用法,采用spring data redis来处理redis的存取。问题1:主要问题是redisTemplate对key和value的序列化,对key采用了spring的StringRedisSerializer。对value采用了kryo的序列化方法。在对value的取值时,遇到了问题,成功的存入了redis,但取出来的byte无法反序列化。<beans ...原创 2019-02-15 18:30:39 · 1468 阅读 · 0 评论 -
java短信发送-阿里短信集成
短信平台根据客户的需求也不同,所以短信平台的扩展要做好。系统默认提供阿里云的短信支持。1.首先提供短信接口import java.util.Map;import com.aliyuncs.exceptions.ClientException;import net.sf.json.JSONObject;public interface ISMSSupportGenerator ...原创 2019-01-07 09:28:08 · 277 阅读 · 0 评论 -
邮件集成java mail + 读取邮件模板
项目做异地登录提醒功能,通过java mail发送邮件。读取邮件模板sendMail.vm文件。1.邮件发送import java.io.StringWriter;import java.util.Properties;import javax.mail.Message;import javax.mail.Session;import javax.mail.Transport;...原创 2019-01-07 08:36:27 · 2318 阅读 · 6 评论 -
图片文件作为接口参数,api调用实现登录页背景图更换
1.前端更换背景图,传递到后端后端接收的参数:HttpServletRequest request, MultipartFile uploadImguploadImg是图片文件,可以根据需求对图片文件的大小和图片格式作自定义要求。 File tempFile = File.createTempFile("temp", ".png"); u...原创 2019-11-26 11:22:54 · 1134 阅读 · 0 评论