import java.lang.annotation.*;
@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME) //表示注解的信息被保留在class文件(字节码文件)中当程序编译时,会被虚拟机保留在运行时,
@Documented
public @interface BaseLog {
String description() default "";
}
https://www.jianshu.com/p/47834f36c2d1
@Aspect
作用:把当前类标识为一个切面供容器读取。
@Pointcut
作用:是植入Advice的触发条件。
@Before、@After
@Before作用:用@Before标识的方法为前置方法,在目标方法的执行之前执行,即在连接点之前进行执行。
@After作用:后置方法在连接点方法完成之后执行,无论连接点方法执行成功还是出现异常,都将执行后置方法。
@AfterReturning
@AfterReturning当连接点方法成功执行后,返回通知方法才会执行,如果连接点方法出现异常,则返回通知方法不执行。
@AfterThrowing
异常通知方法只在连接点方法出现异常后才会执行,否则不执行。
@Around
环绕通知方法可以包含上面四种通知方法,环绕通知的功能最全面。环绕通知需要携带 ProceedingJoinPoint 类型的参数,且环绕通知必须有返回值, 返回值即为目标方法的返回值。
https://blog.csdn.net/u010502101/article/details/78823056
@Aspect 注解使用详解
如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j; 类上面添加@Sl4j注解,然后就可以直接使用log打印日志:log.info(“日志打印”); 需要引入lombok插件。
https://www.jianshu.com/p/721c76c1529c
@repository是用来注解接口,这个注解是将接口xxxMapper的一个实现类交给spring管理。
@repository的含义,并且有时候却不用写,为什么?
@Deprecated 表示此方法已废弃、暂时可用,但以后此类或方法都不会再更新、后期可能会删除,建议后来人不要调用此方法。
@Data
@Getter、@Setter、@ToString, @EqualsAndHashCode和@RequiredArgsConstructor 组合的便捷写法
@Builder
注释为你的类生成相对略微复杂的构建器API。@Builder可以让你以下面显示的那样调用你的代码,来初始化你的实例对象:
Student.builder()
.sno( "001" )
.sname( "admin" )
.sage( 18 )
.sphone( "110" )
.build();
@Builder可以放在类,构造函数或方法上。 虽然放在类上和放在构造函数上这两种模式是最常见的用例,但@Builder最容易用放在方法的用例来解释。
@Data
@Builder
public class User {
@Tolerate
public User() {}
private String name;
private int age;
}
@DependsOn表示被注解的bean在初始化时,指定的bean需要先完成初始化。
使用Spring @DependsOn控制bean加载顺序
一旦使用关于Spring的注解出现在类里,例如我在实现类中用到了@Autowired注解,被注解的这个类是从Spring容器中取出来的,那调用的实现类也需要被Spring容器管理,加上@Component
@Component注解的用法
public interface IProducerProcessor {
//接口定义
}
@Service("sample1")
public producerProcessorImpl1 implements IProducerProcessor {
//接口实现2
}
@Service("sample2")
public producerProcessorImpl2 implements IProducerProcessor {
//接口实现1
}
@Autowired
@Qualifier("sample1")
private IProducerProcessor sampleProducer1;
@Resource(name="sample2")
private IProducerProcessor sampleProducer2;
Spring的注解@Qualifier用法
容器启动过程中,spring按任意顺序加载bean,使用@DependsOn(“springUtil”)可以让springUtil这个Bean先加载,使用与某些依赖springUtil的场景。
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器调用一次,类似于Servlet的inti()方法。被@PostConstruct修饰的方法会在构造函数之后,init()方法之前运行。
执行顺序:Constructor >> @Autowired >> @PostConstruct