【java】Java注解
这几个注解是 Spring Boot 和 Spring Framework 中常用的注解,它们的作用如下:
1. @Slf4j
- 来自:Lombok 库
- 作用:自动为当前类生成一个
log
变量,这个变量是一个org.slf4j.Logger
对象,便于你在类中使用日志功能。 - 等价手动写法:
private static final Logger log = LoggerFactory.getLogger(YourClass.class);
- 使用
@Slf4j
注解后,你可以直接使用log
来输出日志:log.info("This is an info message"); log.error("This is an error message", exception);
2. @ComponentScan(basePackages = {"com.geekplus"})
- 来自:Spring Framework
- 作用:指定 Spring 容器扫描哪些包下的类。Spring 会扫描指定包及其子包中的类,并根据类上的注解自动进行注册(如
@Component
、@Service
、@Repository
等)。 basePackages
参数指定了要扫描的包路径。在这个例子中,Spring 会扫描com.geekplus
包及其子包下的所有类。- 例如,如果你在
com.geekplus
包下有一个@Service
注解的类,Spring 会自动将其注册为一个 Spring Bean。
3. @SpringBootApplication
- 来自:Spring Boot
- 作用:是一个复合注解,等价于以下三个注解的组合:
@Configuration
:标识当前类为 Spring 配置类,相当于一个 XML 配置文件。@EnableAutoConfiguration
:启用 Spring Boot 的自动配置功能,它会根据项目的依赖来自动配置应用。@ComponentScan
:默认会扫描注解所在类的包及其子包,自动注册组件(例如,@Component、@Service、@Controller 等)。
- 这个注解通常用于主应用类,标识它是 Spring Boot 应用的入口。
4. @EnableJpaAuditing
- 来自:Spring Data JPA
- 作用:启用 JPA 审计功能(Audit)。它可以自动为实体类的某些字段(如创建时间、更新时间等)提供审计信息。
- 一般情况下,Spring Data JPA 会通过注解
@CreatedDate
、@LastModifiedDate
等来自动填充实体的创建时间和更新时间等字段。 - 你需要在配置类中启用该注解,然后 Spring Boot 会自动为 JPA 实体添加审计功能。
5. @DependsOn(value = "ConnectorApplicationContextAware")
- 来自:Spring Framework
- 作用:表示当前 Bean 的初始化依赖于名为
"ConnectorApplicationContextAware"
的 Bean,也就是说,"ConnectorApplicationContextAware"
Bean 必须在当前 Bean 之前初始化。 - 这种注解通常用于解决 Spring 中的循环依赖问题或确保某些 Bean 按照特定的顺序加载。
@Nonnull
是一个 Java 注解,通常用于标注 方法、字段、参数 等不允许为 null 的情况。它的作用是向开发者或工具(如 IDE 或静态分析工具)表明,该元素不能为 null,以避免 NullPointerException(空指针异常)等问题。
@OperatorLog
@OperatorLog 注解通常是一个自定义注解,用于记录 操作日志,特别是在用户执行某些操作(例如删除、更新等)时,自动记录这些操作的相关信息。它的主要目的是追踪和记录应用中的操作行为,以便后续审计、分析和调试。