Java springboot里注解大全和使用指南(最新整理)

 更新时间:2026年03月20日 16:00:39   作者:奋力向前123  
在Java Spring Boot中,注解是简化开发、提高效率的关键工具,这篇文章给大家介绍Java springboot里注解大全和使用指南,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

在 Java Spring Boot 中,注解是简化开发、提高效率的关键工具。以下是一些核心注解及其使用指南,按功能分类整理:

一、核心启动与配置注解

  • @SpringBootApplication
    • 作用:Spring Boot 应用的核心注解,用于标记主启动类。它是一个组合注解,等价于同时使用 @Configuration@EnableAutoConfiguration 和 @ComponentScan
    • 使用场景:必须添加在 Spring Boot 应用的主启动类上,是应用启动的必要条件。
  • 示例
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

@Configuration

  • 作用:声明当前类是一个配置类,相当于 Spring 的 XML 配置文件。
  • 使用场景:用于定义和配置 Bean,通常配合 @Bean 注解一起使用。
  • 示例
@Configuration
public class AppConfig {
    @Bean
    public DataSource dataSource() {
        // 配置并返回一个数据源 Bean
        return new HikariDataSource();
    }
}
  • @EnableAutoConfiguration
    • 作用:启用 Spring Boot 的自动配置机制,根据类路径和配置文件中的信息自动配置 Spring 应用。
    • 使用场景:通常与 @SpringBootApplication 一起使用,无需单独使用。
  • @ComponentScan
    • 作用:自动扫描指定包及其子包下的组件(如 @Component@Service@Repository@Controller 等),并将它们注册为 Spring Bean。
    • 使用场景:通常与 @SpringBootApplication 一起使用,无需单独使用。若需自定义组件扫描范围,可通过 basePackages 属性指定。
  • 示例
@SpringBootApplication(scanBasePackages = "com.example.demo")
public class DemoApplication {
    // ...
}

二、组件注册注解

  • @Component
    • 作用:通用的组件注解,用于标记任何类为 Spring 的组件。Spring 会自动扫描并创建该类的实例。
    • 使用场景:当组件不属于 ControllerServiceRepository 等特定层级时使用。
  • 示例
@Component
public class ToolUtil {
    public String formatStr(String str) {
        return str.trim().toUpperCase();
    }
}

@Service

  • 作用:标记业务逻辑层(Service 层)的组件,是 @Component 的特化版本,语义更加明确。
  • 使用场景:用于封装核心业务逻辑。
  • 示例
@Service
public class UserService {
    public User getUserById(Integer id) {
        // 实际场景中会调用 Repository 层查询数据库
        User user = new User();
        user.setId(id);
        user.setName("李四");
        return user;
    }
}

@Repository

  • 作用:标记数据访问层(DAO 层)的组件,是 @Component 的特化版本。除了将类注册为 Bean 外,它还额外提供了持久化异常转换的功能。
  • 使用场景:用于封装数据访问逻辑,与数据库交互。
  • 示例
@Repository
public interface UserRepository extends JpaRepository<User, Integer> {
    User findByName(String name);
}

@Controller

  • 作用:标记控制层组件,用于接收 HTTP 请求并返回视图或数据。
  • 使用场景:Web 层控制器类,处理用户请求(如页面跳转、表单提交等)。
  • 示例
@Controller
@RequestMapping("/user")
public class UserController {
    @GetMapping("/info")
    public String userInfo(Model model) {
        model.addAttribute("username", "张三");
        return "user-info"; // 返回视图名
    }
}

@RestController

  • 作用:组合注解,相当于 @Controller + @ResponseBody。用于构建 RESTful API,返回 JSON/XML 等数据格式,而非视图。
  • 使用场景:前后端分离项目的接口层,提供 RESTful API(如移动端接口、前端 AJAX 请求接口)。
  • 示例
@RestController
@RequestMapping("/api/user")
public class UserRestController {
    @GetMapping("/info")
    public User getUserInfo() {
        User user = new User();
        user.setId(1);
        user.setName("张三");
        return user; // 直接返回 User 对象,会自动转为 JSON
    }
}

三、依赖注入注解

  • @Autowired
    • 作用:自动注入依赖的 Bean,Spring 会在 IoC 容器中查找匹配类型的 Bean 并注入到目标字段、构造方法或 setter 方法中。
    • 使用场景:需要注入其他 Bean 依赖时(如 Service 层注入 Repository 层、Controller 层注入 Service 层)。
    • 示例
@RestController
public class UserRestController {
    private final UserService userService;
    @Autowired
    public UserRestController(UserService userService) {
        this.userService = userService;
    }
    @GetMapping("/info")
    public User getUserInfo() {
        return userService.getUserById(1);
    }
}

@Qualifier

  • 作用:与 @Autowired 一起使用,用于指定要注入的 Bean 的名称。当存在多个相同类型的 Bean 时,可以使用 @Qualifier 来指定注入哪一个。
  • 使用场景:解决相同类型 Bean 的歧义性注入问题。
  • 示例
@RestController
public class UserRestController {
    private final UserService userService;
    @Autowired
    @Qualifier("userServiceImpl") // 指定注入的 Bean 名称
    public UserRestController(UserService userService) {
        this.userService = userService;
    }
    // ...
}

@Value

  • 作用:注入配置文件中的值,可以注入 Stringintlongdoubleboolean 等类型。
  • 使用场景:从配置文件中读取配置值并注入到 Bean 的属性中。
  • 示例
@Component
public class AppConfig {
    @Value("${server.port}")
    private int port;

    // ...
}

四、Web 开发注解

  • @RequestMapping
    • 作用:映射 HTTP 请求到处理方法,可以用于类和方法上。用于指定请求 URL 和 HTTP 方法(GET、POST、PUT、DELETE 等)。
    • 使用场景:处理 Web 请求,将请求映射到具体的处理方法上。
    • 示例
@RestController
@RequestMapping("/api/user")
public class UserRestController {
    @GetMapping("/info")
    public User getUserInfo() {
        // ...
    }
    @PostMapping("/create")
    public User createUser(@RequestBody User user) {
        // ...
    }
}

@GetMapping@PostMapping@PutMapping@DeleteMapping

  • 作用:分别用于映射 HTTP GET、POST、PUT、DELETE 请求到处理方法上。它们是 @RequestMapping 的特化,分别对应不同的 HTTP 请求方法。
  • 使用场景:简化 RESTful API 的开发,直接对应 HTTP 方法。
  • 示例
@RestController
@RequestMapping("/api/user")
public class UserRestController {
    @GetMapping("/info")
    public User getUserInfo() {
        // ...
    }
    @PostMapping("/create")
    public User createUser(@RequestBody User user) {
        // ...
    }
}

@RequestParam

  • 作用:用于将请求参数绑定到 Controller 方法的参数上。
  • 使用场景:获取 URL 查询参数或表单提交的参数。
  • 示例
@GetMapping("/search")
public List<User> searchUsers(@RequestParam String name, @RequestParam(defaultValue = "10") int size) {
    // ...
}

@PathVariable

  • 作用:用于获取请求路径中的参数,通常用于 RESTful 风格的 API 上。
  • 使用场景:从 URL 路径中提取参数值。
  • 示例
@GetMapping("/user/{id}")
public User getUserById(@PathVariable Long id) {
    // ...
}

@RequestBody

  • 作用:用于接收请求体中的 JSON 数据,并将其绑定到 Controller 方法的参数上。
  • 使用场景:处理 POST、PUT 等请求中的 JSON 数据。
  • 示例
@PostMapping("/create")
public User createUser(@RequestBody User user) {
    // ...
}

@ResponseBody

  • 作用:表示该方法的返回结果直接写入 HTTP 响应体中,返回数据的格式为 application/json。通常与 @Controller 一起使用,若使用 @RestController 则无需使用此注解。
  • 使用场景:返回 JSON/XML 等数据格式,而非视图。
  • 示例
@Controller
public class UserController {
    @GetMapping("/info")
    @ResponseBody
    public User getUserInfo() {
        User user = new User();
        user.setId(1);
        user.setName("张三");
        return user;
    }
}

到此这篇关于Java springboot里注解大全和使用指南(最新整理)的文章就介绍到这了,更多相关 springboot注解使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java传输较大数据的相关问题解析及相关面试题问答

    Java传输较大数据的相关问题解析及相关面试题问答

    在技术团队的日常工作中,大文件传输是一个绕不开的话题,这篇文章主要介绍了Java传输较大数据的相关问题解析及相关面试题问答的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-07-07
  • Java异常处理机制try catch流程详解

    Java异常处理机制try catch流程详解

    这篇文章主要介绍了Java异常处理机制try catch流程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • SpringBoot整合Spring Batch示例代码

    SpringBoot整合Spring Batch示例代码

    这篇文章主要来和大家一起探讨一下SpringBoot如何整合Spring Batch,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • Java实现微信红包分配规则

    Java实现微信红包分配规则

    这篇文章主要为大家详细介绍了Java实现仿微信红包分配规则,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • 解决SpringBoot配置文件项目重启出现乱码的问题

    解决SpringBoot配置文件项目重启出现乱码的问题

    最近在创建了SpringBoot项目后往配置文件中写了相关的系统配置,并且在上面加了中文注释,但是在重启项目或开机重启后遇到了注释乱码的情况,下面这篇文章主要给大家介绍一下如何解决SpringBoot配置文件项目重启出现乱码的问题,需要的朋友可以参考下
    2023-06-06
  • Springboot @Transactional大事务处理的几点建议

    Springboot @Transactional大事务处理的几点建议

    本文主要介绍了大事务的概念及其危害,并提出了几种解决大事务问题的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-01-01
  • SpringBoot详细分析自动装配原理并实现starter

    SpringBoot详细分析自动装配原理并实现starter

    相对于传统意义上的Spring项目,SpringBoot具有开箱即用,简化配置,内置Tomcat等等等等一系列的特点。在这些特点中,最重要的两条就是约定优于配置和自动装配
    2022-07-07
  • Unity2019-2020 个人版官方免费激活详细方法

    Unity2019-2020 个人版官方免费激活详细方法

    这篇文章主要介绍了Unity2019-2020 个人版官方免费激活详细方法,激活方法分位两种一种是激活新许可证,一种是手动激活,感兴趣的朋友跟随小编一起看看吧
    2021-04-04
  • SpringMVC异常处理的三种方式小结

    SpringMVC异常处理的三种方式小结

    本文主要介绍了SpringMVC异常处理的三种方式小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • Java动态脚本Groovy

    Java动态脚本Groovy

    本文介绍了Java动态脚本Groovy,Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性,需要的朋友可以参考一下
    2021-12-12

最新评论