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

Java开发中的常用注解

Spring框架注解

@Bean

  • 作用:通过使用@Bean注解,开发者可以声明方法,并将其返回值注册为Spring容器中的一个Bean。
  • 使用对象:方法
    @Beanpublic HelloService helloService(){return new HelloService();}

@Component

  • 作用:将一个普通Java类标记为Spring容器管理的Bean,使其能够被自动扫描、实例化并通过依赖注入使用;
  • 使用对象:类

@Repository

  • 作用:标识数据访问层组件,它不仅提供了@Component注解的所有功能,还增加了数据访问相关的异常处理;
  • 使用对象:类

@Service

  • 作用:标记服务层组件,有@Component注解的所有功能,因为它的注解定义中包含了@Component;
  • 使用对象:类

@Controller

  • 作用:
    • 1、标记控制器组件:标记一个类为控制器类,使其成为一个Spring管理的Bean;
    • 2、处理HTTP请求:标记的类中,可以包含多个方法来处理不同的HTTP请求,这些方法通常使用@RequestMapping或其快捷方式(如@GetMapping、@PostMapping等)来制定处理特定URL路径和HTTP方法的规则;
    • 3、与视图层交互:控制器方法可以返回视图名称;
    • 4、数据绑定和验证:控制器方法可以通过参数接收来自请求的数据;
    • 5、支持依赖注入;
  • 使用对象:类

@ResponseBody

  • 作用:将控制器方法的返回值直接写入HTTP响应体中,而不是作为视图名称解析。当使用了ResponseBody的方法执行完毕后,Spring会自动将返回的对象转换为相应的格式(如JSON、XML等),并将其作为HTTP响应的内容发送给客户端‌(简单来说就是,直接返回数据)。
  • 使用对象:类或者方法

@ResController

  • 作用:是@Controller+@ResponseBody的组合;
  • 使用对象:类

@Configuration

  • 作用:标识一个类为配置类,用于定义和管理Bean的创建和配置;
  • 使用对象:类

@Value

  • 作用:
    • 读取配置文件:@Value注解可以从application.properties或application.yml配置文件中读取属性值,并将其注入到Bean的字段中;
    • 读取系统属性和环境变量:可以从系统属性和环境变量中读取值并注入到Bean中;
    • 支持SpEL表达式:可以使用Spring表达式语言进行复杂的表达式注入;
  • 使用对象:成员变量;
  • 用法,举例:
        @Value("${app.name}")private String appName;
    

@Mapper

  • 作用:在MyBatis中的作用是标记一个接口为Mapper接口,这样MyBatis就可以自动扫描到这个接口,并将其注册为一个Spring Bean,从而使得接口中的方法可以直接调用对应的数据库操作。使用@Mapper注解可以避免编写繁琐的XML映射文件,使得代码更加简洁和易于管理;

通常是结合@MapprScan注解一起使用的,指定扫描的包路径,例如:

@SpringBootApplication
@MapperScan("com.lq.learn.mapper")
public class LearnApplication {public static void main(String[] args) {SpringApplication.run(LearnApplication.class, args);}}
  • 使用对象:接口

@SpringBootApplication

  • 作用:标记这个类,为SpringBoot项目的启动类,提供一个方便的组合注解,用于简化SpringBoot应用程序的配置和启动;
  • 使用对象:类
http://www.xdnf.cn/news/12907.html

相关文章:

  • 字符串系列一>最长回文子串
  • 给予FLUX更好的控制:FLUX.1-dev-ControlNet-Union-Pro-2.0
  • Redis——网络模型之IO讲解
  • 大模型微服务架构模块实现方案,基于LLaMA Factory和Nebius Cloud实现模型精调的标准流程及代码
  • Android——动画
  • IPTV电视信息发布直播点播系统:营造数字化个性化融合化多媒体IPTV电视信息发布平台
  • 预训练与微调:大模型如何“学习知识”?
  • Python 网络爬虫基础理论与实战指南
  • 【每日八股】复习计算机网络 Day1:TCP 的头部结构 + TCP 确保可靠传输 + TCP 的三次握手
  • 【漫话机器学习系列】209.均值的标准误差(Standard Error of the Mean)
  • 完整的 .NET 6 分布式定时任务实现(Hangfire + Redis 分布式锁)
  • 故障诊断常用算法
  • 2025妈妈杯数学建模D题完整分析论文
  • Kubernetes Pod 调度策略:从基础到进阶
  • java面向对象09:方法的重写
  • PyTorch入门------卷积神经网络
  • TCP/IP和UDP协议的发展历程
  • POSIX 信号量(Semaphore)
  • MacOS怎么显示隐藏文件
  • Vue3 实战:打造多功能旅游攻略选项卡页面
  • 记录学习的第二十九天
  • unity TEngine学习记录3
  • 精准计量+AI管控——安科瑞助力高校水电管理数字化转型
  • C#插件与可扩展性
  • 闲来无事,用HTML+CSS+JS打造一个84键机械键盘模拟器
  • 优化自旋锁的实现
  • pdfjs库使用3
  • Linux内核机制——内存管理
  • C++ 迭代器失效详解:如何避免 vector 操作中的陷阱
  • 数控铣床自动上下料机械手控制装置设计