![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA学习进阶
skye_fly
这个作者很懒,什么都没留下…
展开
-
springboot集成javax mail第三方邮件功能避坑,javax.mail.MessagingException: Exception reading response
springboot集成javax mail使用第三方发送邮件时存在各种各样的异常,正常流程大概如下:1. 邮箱开通smtp功能(以126邮箱为例)2. 项目pom文件导入依赖导入以下几个依赖时会报错Exception in thread "main" java.lang.NoSuchMethodError: com.sun.mail.util.TraceInputStream.<init>(Ljava/io/OutputStream;Lcom/sun/mail/util/MailLo原创 2021-11-14 20:24:26 · 3342 阅读 · 1 评论 -
DNS工作流程(递归查询、迭代查询)、ARP协议
记录一下DNS是怎么根据一个网址查找对应的ip地址的:原创 2021-09-22 22:49:34 · 684 阅读 · 0 评论 -
Spring Bean加载机制中的循环依赖
首先放上Bean加载过程:可以简要概括为几个阶段:Bean的实例化属性赋值初始化使用Bean销毁Bean以上getEarlyBeanReference()的过程简要如下:由于实例化和属性赋值是分开的两个阶段,所以我们可以将Bean先实例化,然后将所有实例化完成的Bean放入第三级缓存中(提前暴露);等到属性赋值时,再从缓存中查找该Bean自身依赖的其他Bean,每当一个Bean被其他Bean从三级缓存中找到后,就会被放入到第二级缓存;最终一个Bean从缓存中找到了原创 2021-09-14 14:47:31 · 174 阅读 · 0 评论 -
操作系统如何保证一致性、有序性、原子性(Unsafe类以下)
首先放总结图:一、问题引入:Java中广泛使用的CAS技术底层源码都是使用的Unsafe类,而这是一个native方法,本质上绕过了JVM,是由C/C++语言编写的,直接与操作系统底层相关,所以可以实现操作的原子性。那么操作系统底层是如何保证操作的数据一致性、有序性、原子性的呢?一致性:总线窥探原理 + 缓存一致性协议(硬件层面)有序性:解决指令重排问题,内存屏障(软件层面,使用barrier编译器告诉计算机要按照顺序执行这段指令)原子性:缓存一致性协议二、cpu处理数据的过程:每原创 2021-09-02 16:18:51 · 1044 阅读 · 0 评论 -
静态代理与动态代理
静态代理:真实对象类;代理类;真实对象的方法抽象的接口;代理类与真实类都实现该接口,那么代理类中传入真实类的对象,由代理类调用该接口方法就可以执行真实类的对象中该方法,而且代理类对象可以在调用该抽象方法前、中、后阶段加入自己的执行语句。动态代理:(代理类不绑定真实对象与抽象接口方法)真实对象还是要绑定抽象接口方法;代理类不绑定真实类的对象,而且不具体实现某个抽象接口的方法;在调用代理类时,通过反射获取要代理的真实类对象,然后调用该代理对象的invoke方法时,传入真实类实现的接口方法,原创 2021-09-01 17:03:14 · 46 阅读 · 0 评论 -
网络IO(BIO,NIO,AIO,Selector,epoll)
内核与用户空间传输数据时的两处阻塞:内核与用户线程传输数据时先建立一条socket连接,之后存在两处阻塞:第一处就是内核要从磁盘读取数据,然后才能进行传输(BIO);第二处就是当内核与用户线程有很多socket连接时,需要判断哪条连接上已经准备好传输数据了(NIO)。一、BIO:只适用于连接数少的情况两处阻塞都存在,用户线程与内核建立连接后,用户线程阻塞等待内核从磁盘获取数据,然后等待内核与用户线程间的socket链路完成数据传输。二、NIO:适用于连接数多,每条连接传输的数据量少的情况s原创 2021-08-31 22:19:15 · 228 阅读 · 0 评论 -
ReentrantLock(AQS内部结构以及加锁过程),Synchronized与Volatile
可重入锁的内部结构,源码以及程序中是如何重复加锁的,简要总结如下图,方便以后自己回顾原创 2021-08-30 22:12:23 · 139 阅读 · 0 评论 -
Spring IOC依赖注入以及Bean的生命周期
从Tomcat启动扫描配置到Spring Bean对象的创建以及销毁过程如下:关键是Bean的生命周期涉及的五大接口以及它们的九大方法。参考文章:https://blog.csdn.net/qq_35634181/article/details/104473308原创 2021-08-25 20:41:36 · 84 阅读 · 0 评论 -
@RequestBody后端接收不到前端传递的对象类的原因
记录一下自己老碰到的一个坑,后端controller层方法在使用注解@RequestBody接收前端传递的对象时,请求方式不能设置成@GetMapping,不然后端会报以下空指针异常解决方法就是前后端请求方式都设置成post,如下图:...原创 2021-08-11 15:01:58 · 2170 阅读 · 0 评论 -
解决feign开启日志功能Logger.Level feignLoggerLevel()中Level爆红问题
今天在学习feign时测试其配置日志的功能,发现Logger不存在Level方法,百度了一圈没有找到方法,结果自己摸索发现是导错了包,如下是错误的包应该导入feign中的Logger包,如下原创 2021-07-16 10:57:33 · 1566 阅读 · 0 评论 -
java后端分布式框架路线图
基于Spring全家桶的java后端分布式框架框架图框架图最近开始在公司实习(摸鱼ing),自己理了一下后端分布式的大体框架,可以如以下简单的示意图所示(抽象派画家O(∩_∩)O。。。)首先用户通过SpringCloud Security进行授权登录(涉及JWT/OAthu2等)用户在浏览器或者客户端发送访问请求,经过GateWay网关(包含拦截,过滤,负载均衡以及路由功能)请求经过GateWay路由到控制层相应的方法中controller从nacos注册中心获取相应服务的地址,并进行服务请原创 2021-07-15 10:23:08 · 891 阅读 · 0 评论 -
通过url访问Vue页面无法在url中加入传递的参数,前端页面不报错
最近在b站学习尚硅谷的项目“谷粒学院”时发现一个坑,在p120中由一个页面跳转到另一个页面并且url带有参数时,发现无法显示跳转的页面,同时前端不报错。只显示如下信息:后来发现自己在router里的js文件中定义相应页面的路由时,path属性值没有加上可带的参数,即错误示范如下:如果这样定义,那么访问info页面时,url无法带参数。正确的方式应该如下:应该加上":id",这样便允许url地址栏中带参数访问页面。...原创 2021-07-04 20:44:02 · 1578 阅读 · 0 评论 -
解决SSM中无法由@Autowired获取对象的问题
在SSM框架中一般都通过依赖注入的方法来获得对象,但是对于初始化服务器时的监听器类,以及没有在springmvc配置文件中添加组件扫描器的普通类,想要获得service层的对象不能通过@Autowired来自动注入对象,此时可以通过工具类WebApplicationContextUtils来得到对象。具体调用方法如下:DicService dicService = (DicService) WebApplicationContextUtils.getWebApplicationContext(appli原创 2021-05-26 16:23:43 · 419 阅读 · 0 评论 -
SSM框架学习中,运行出现“HTTP Status 404 – 未找到”错误
404的错误都是资源路径错误,经过查找,发现是在SpringMVC配置文件中定义视图解析器时前缀路径没有以“/”开头:即<property name="prefix" value="WEB-INF/jsp/"/>应该在WEB前加上“/”,如下:<property name="prefix" value="/WEB-INF/jsp/"/>这里涉及一个知识点:访问地址以“/”开头与非“/”开头的区别,我们都知道文件资源路径都由参考路径+相对路径组成(非绝对路径的情况),在原创 2021-05-09 22:07:34 · 3456 阅读 · 0 评论 -
IDEA导入tomcat时,javax包文件中没有相关类
最近学习Java Web,在IDEA中建立WebApplication项目时,IDEA自动导入的外部包中javax包下没有相应的jar包,如下图但是到Tomcat安装路径下可以找到相应的jar包,后来发现先删除一次这两个包文件,然后在导入这两个包后IDEA就会加载里面的类。如下,在IDEA中删除这两个包(注意这会导致磁盘中这两个源文件被删除,所以要先在磁盘中拷贝一份),然后在磁盘中再导入这两个包,再打开IDEA会发现,外部包中已经导入了这两个jar包中的类。...原创 2021-04-23 15:03:23 · 579 阅读 · 4 评论