spring框架学习(9)常用注解
序言
@NotEmpty 用在集合类上面
@NotBlank 用在String上面
@NotNull 用在基本类型上
@Nullable 如果可以传入NULL值,则标记为@Nullable,如果不可以,则标注为@Nonnull
在Java中,volatile、synchronized和final是三个非常重要的关键字,它们都与并发编程密切相关。
Java中自定义注解介绍与使用场景详解
https://www.cnblogs.com/liangweiping/p/3837332.html
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
@Inherited @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.METHOD}) public @interface SoaNode { String ProductName(); String ServiceName(); String MethodName(); int Timeout() default 6000; int RetryCount() default 0; }
@Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Around
是环绕通知,既可以控制入参,还可以控制原方法的执行和返回值
TransmittableThreadLocal
private TransmittableThreadLocal<Boolean> threadLocal = new TransmittableThreadLocal<>();
TransmittableThreadLocal是阿里巴巴开源的一个线程本地存储类,它可以在使用线程池时,将线程本地存储的变量传递给子线程,从而避免了线程安全问题。TransmittableThreadLocal通过重写线程池的线程创建和销毁方法,实现了线程本地存储的传递。
写法一修饰的是一个方法,写法二修饰的是一个代码块,但写法一与写法二是等价的,都是锁定了整个方法时的内容。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
public synchronized void method() { // todo } public void method() { synchronized(this) { // todo } }