自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

原创 ThreadLocal

对于某一ThreadLocal来讲,他的索引值i是确定的,在不同线程之间访问时访问的是不同的table数组的同一位置即都为table[i],只不过这个不同线程之间的table是独立的。 对于同一线程的不同ThreadLocal来讲,这些ThreadLocal实例共享一个table数组,然后每个ThreadLocal实例在table中的索引i是不同的。...

2021-12-14 16:57:37 155

原创 搭建微服务模块踩得坑

1、坑1 api中feignclient中的名字@FeignClient(name = "****") 和 该微服务名字不一样,调用api 会报feign.FeignException$ServiceUnavailable: [503 Service Unavailable] during GET …解决方法: name = "user-server" 的名字要和 application.yaml中spring: application: name: user-server 一样2、坑..

2021-11-29 20:33:00 3943 2

原创 springcloud整合Admin

一、整合Admin1、添加依赖(注意版本和springboot版本要一致,否则会报错,我的springboot版本是2.5.5)<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>.

2021-11-02 18:57:42 989

原创 实现自定义starter步骤

一、创建项目工程在IDEA中创建一个空项目,两个moudle,分别是sunshine-spring-boot-starter和sunshine-spring-boot-starter-autoconfigurer1、创建一个空项目点击finish创建moudle新建一个sunshine-spring-boot-starter maven项目点击finish即可再新建一个moudle为sunshine-spring-boot-s...

2021-10-20 17:22:36 1112

原创 cglib代理

一、cglib代理cglib是一个强大、高性能的字节码生成库,它用于在运行时扩展Java类和实现接口;本质上它是通过动态的生成一个子类去覆盖所要代理的类(非final修饰的类和方法)。Enhancer可能是CGLIB中最常用的一个类,和jdk中的Proxy不同的是,Enhancer既能够代理普通的class,也能够代理接口。Enhancer创建一个被代理对象的子类并且拦截所有的方法调用(包括从Object中继承的toString和hashCode方法)。Enhancer不能够拦截final方法,例如O

2021-09-02 15:03:55 2205

原创 JDK动态代理

一、JDK动态代理(只能代理接口,不能代理类)主要用到这两个类 Proxy和InvocationHandlerProxy,通过这个类的newProxyInstance方法可以创建代理类的实例对象。InvocationHandler,动态代理类实现这个接口,可以对目标对象的方法进行处理二、实现接口package com.sunshine.boot.proxy.jdk;public interface IService { void test1();}实

2021-09-02 13:55:48 99

原创 spring中depend-on,primary和autowire-candidate

一、depend-on在某个bean注册之前需要依赖于其他bean注册完比如bean1在注册时需要依赖 beanScopeItem和threadScopeConfig注册完,才能注册@DependsOn(value = {"beanScopeItem","threadScopeConfig"})@Componentclass Bean1 { }二、primary和autowire-candidateprimary或者autowire-candidate 主要用于解决容器中

2021-09-02 10:57:11 258

原创 spring中自定义bean的作用域

一、自定义作用域需要实现Scope接口这块实现的作用域是线程级别的package com.sunshine.boot.common;import org.springframework.beans.factory.ObjectFactory;import org.springframework.beans.factory.config.Scope;import java.util.HashMap;import java.util.Map;import java.util.Object

2021-09-01 17:21:08 325

原创 线程Thread

1、当线程睡眠中,使用inputrupt 会中断睡眠,进入catch中。比如线程t1在睡眠,当调用t1.inputrupt()线程t1停止睡眠。2、 synchronized: this对象锁是非公平锁(1)在多线程使用同一个对象的测试中,只允许同时使用一个对象锁,一个类锁,其他操作搭配都互斥,只能等前一个线程解锁才能让下一个线程使用;(2)在多线程分别 new 一个对象的测试中,允许同时使用任意的对象锁,也允许对象锁和一个类锁同时使用,但是类锁不能够同时使用,会互斥...

2021-07-05 17:09:58 80

原创 ObjectInputStream和ObjectOutputStream注意事项

1、读写顺序一致2、要求实现序列化或者反序列化对象,需要实现Serializable3、序列化的类中建议添加SerialVersionUID,为了提高版本兼容性(当对这个类的属性扩展时,相当于版本更新,而不至于是一个新的类)4、序列化对象时,默认将里面所有属性都序列化,但除了static或transient修饰的成员5、序列化对象时,要求里面的属性也需要实现序列化接口6、序列化具备可继承性,也就是如果某类已经实现了序列化,则它的所有子类也已经默认实现序列化...

2021-06-29 20:21:25 1137

原创 Java网络编程 TCP,UDP注意点

TCP编程1、服务器端,使用ServerSocket对象的accept() 方法会使当前线程阻塞,直到接受到客户端请求,程序进行执行。2、使用Socket对象获取输入流,InputStream.read()方法会获取数据,如果无数据可读,就会阻塞直到有数据可读。或者到达流的末尾,这个时候分别返回-1和null。UDP编程1、使用datagramSocket.receive(datagramPacket)接收数据,receive()方法等待数据报的到来,该方法会一直阻塞调用该方法的线程,.

2021-06-22 17:17:32 199 1

原创 Java枚举类

enum关键字实现枚举注意事项1、当我们使用enum关键字开发一个枚举类时,默认会继承Enum类,而且是一个final类。2、传统的public static

2021-06-21 10:23:50 67

原创 java中四种内部类

一、局部内部类局部内部类是定义在外部类的局部位置,比如方法中或者代码块中,并且有类名1、可以直接访问外部类的所有成员,包含私有的。2、不能

2021-06-16 23:16:53 170

原创 Object里的wait()和notify()

一、wait在调用wait()之前,线程必须获得该对象的对象级锁,即只能在同步方法或者同步块中调用wait方法。在执行wait方法之后,当前线程释放锁。如果调用wait时没有持适当的锁,则会抛出异常。二、notify在调用notify()之前,线程必须获得该对象的对象级锁,即只能在同步方法或者同步块中调用notify方法。在执行notify方法之后,当前线程并不会马上释放该对象锁,要等待notify方法的线程将程序执行完,即就是退出synchronized代码块后,当前线程才释放锁。如果调.

2021-05-14 22:20:12 193

原创 spring中的配置文件导入多个bean.xml文件,有id相同的bean

例如在applicationx.xml,导入test1.xml和test2.xml 如下所示application.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context.

2021-04-11 17:12:53 684

原创 自己遇到的事务失效情况及解决方法

自己遇到的事务失效情况(直接调用的意思是this.B()的形式或者B()形式调用)同一个类中1、A方法没有加事务,B方法加了事务,在A方法直接调用B方法,B方法出现异常了,B方法不会回滚原因:spring在扫描包的时候会扫描到@Transactional注解的方法,spring的回滚是用过代理模式生成的,如果是一个不带事务的方法调用该类的带事务的方法,直接通过this.xxx()调用,而不生成代理事务,所以事务不起作用2、a方法默认传播行为即Propagation.REQUIRED...

2021-02-14 21:56:18 500

原创 spring事务的传播行为详细理解

spring事务的传播行为详细理解一,spring七中事务传播行为 1、 REQUIRED:默认的传播特性,业务方法需要在一个事务中运行,如果一个方法已经处在一个事务中那么就加入到这个事务中,否则就会创建一个事务。 2、 NEVER:指定的业务方法绝对不能在事务范围内运行,如果业务方法在某个事务中执行,就会抛异常,只有业务方法没有任何事务才正常执行。 3、 MANDATORY:该属性指定业务方法只能在一个已经存在的事务中执行,业务方法不能自己发起自己的事务,如果业务方法不存在事务,容器就抛异

2021-02-14 19:46:20 397

空空如也

空空如也

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

TA关注的人

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