当前位置: 首页 > news >正文

【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 注解通常是一个自定义注解,用于记录 操作日志,特别是在用户执行某些操作(例如删除、更新等)时,自动记录这些操作的相关信息。它的主要目的是追踪和记录应用中的操作行为,以便后续审计、分析和调试。

http://www.xdnf.cn/news/579475.html

相关文章:

  • 通信协议详解(分层技术解析)
  • 4-码蹄集600题基础python篇
  • 16、Python运算符全解析:位运算实战、字符串拼接与列表合并技巧
  • 如何在电脑上登录多个抖音账号?多开不同IP技巧分解
  • 【Redis】AOF日志
  • 8天Python从入门到精通【itheima】-26~28
  • CondaEnvException: The specified prefix appears to be a top level directory
  • 图论算法精解(Java 实现):从基础到高频面试题
  • 单链表C语言实现
  • Web项目流程总结
  • 第七章:数据存储策略与状态恢复机制实录
  • Bently Nevada 3500/61 非隔离I/O模块 (133819-02)
  • 一命通关单调栈
  • 工业轴承故障检测技术现状:中国智造的突破与挑战
  • 微信小程序自行diy选择器有效果图
  • 第20天-python生成word文档
  • 《MQTT 从 0 到 1:原理、实战与面试指南全解》
  • PostgreSQL相比Oracle有哪些优势?
  • 一朵由钢片织成的云 ——超“限”的结构
  • 精通Python:使用Pandas进行数据处理与分析
  • PortgreSQL常用操作
  • AI应用电商篇汇总(持续补充)
  • 让蜂鸣器报警并退出
  • 判断一个元素是否在可视区域
  • 嵌入式学习的第二十五天-系统编程-标准I0与文件IO
  • Agentic Loop与MCP:大模型能力扩展技术解析
  • 06 接口自动化-框架封装思想建立之httprunner框架(下)
  • 算法--js--电话号码的字母组合
  • Manus与DeepSeek 的区别
  • 从0开始学linux韦东山教程第四章问题小结(2)