news 2026/6/10 9:43:51

Spring Boot注解总结大全【案例详解,一眼秒懂】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Spring Boot注解总结大全【案例详解,一眼秒懂】
  1. @SpringBootApplication

    • 功能:这是Spring Boot应用的核心注解,它是一个组合注解,实际上相当于同时使用了@Configuration@EnableAutoConfiguration@ComponentScan。它标记在主应用类上,用于开启Spring Boot的自动配置功能,扫描组件并加载应用程序上下文。
    • 示例

    import org.springframework.boot.SpringBootApplication;

    @SpringBootApplication
    public class MyApplication {
    public static void main(String[] args) {
    SpringBootApplication.run(MyApplication.class, args);
    }
    }

    • 在这个示例中,MyApplication是主应用类,@SpringBootApplication注解告诉Spring Boot这是一个应用的入口点,并且要开启自动配置、扫描组件等操作。
  2. @RestController

    • 功能:是@Controller@ResponseBody的组合注解。@Controller表示这个类是一个Spring MVC控制器,用于处理Web请求;@ResponseBody表示方法的返回值直接作为HTTP响应体返回,而不是解析为视图名称,通常用于构建RESTful风格的Web服务。
    • 示例

    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;

    @RestController
    public class HelloController {
    @GetMapping(“/hello”)
    public String sayHello() {
    return “Hello, World!”;
    }
    }

    • 这里的HelloController类被@RestController注解标记,sayHello方法处理/hello路径的GET请求,并直接返回一个字符串作为响应内容。
  3. @GetMapping、@PostMapping、@PutMapping、@DeleteMapping等

    • 功能:这些注解是Spring MVC提供的用于简化HTTP请求方法映射的注解。@GetMapping用于处理GET请求,@PostMapping用于处理POST请求,@PutMapping用于处理PUT请求,@DeleteMapping用于处理DELETE请求。它们都可以指定请求路径作为参数。
    • 示例

    import org.springframework.web.bind.annotation.DeleteMapping;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RestController;

    @RestController
    public class UserController {
    @GetMapping(“/users”)
    public String getUsers() {
    // 返回用户列表的逻辑
    return “List of users”;
    }

    @PostMapping("/users") public String addUser() { // 添加用户的逻辑 return "User added"; } @PutMapping("/users/{id}") public String updateUser() { // 更新用户的逻辑 return "User updated"; } @DeleteMapping("/users/{id}") public String deleteUser() { // 删除用户的逻辑 return "User deleted"; }

    }

    • 这个UserController类展示了如何使用这些注解来处理不同类型的HTTP请求,用于对用户资源进行CRUD(创建、读取、更新、删除)操作。
  4. @RequestMapping

    • 功能:这是一个比较通用的请求映射注解,可以用于处理多种HTTP请求方法。它可以指定请求路径、请求方法、请求头、请求参数等条件来匹配请求。@GetMapping等注解实际上是@RequestMapping的简化形式。
    • 示例

    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestMethod;
    import org.springframework.web.bind.annotation.RestController;

    @RestController
    @RequestMapping(“/books”)
    public class BookController {
    @RequestMapping(value = “/{id}”, method = RequestMethod.GET)
    public String getBookById() {
    // 根据ID获取图书的逻辑
    return “Book details”;
    }
    }

    • 这里BookController类使用@RequestMapping注解指定了基础路径为/booksgetBookById方法使用@RequestMapping再次指定了请求路径为/{id}并且请求方法为GET,用于获取指定ID的图书信息。
  5. @Autowired

    • 功能:用于自动装配Spring容器中的Bean。当Spring容器中有一个类型匹配的Bean时,它会自动将这个Bean注入到被@Autowired注解标记的字段、方法参数或构造函数参数中。
    • 示例

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;

    @Service
    public class UserService {
    private final UserRepository userRepository;

    @Autowired public UserService(UserRepository userRepository) { this.userRepository = userRepository; } // 其他业务逻辑

    }

    • 在这个UserService类中,通过构造函数注入了UserRepository@Autowired注解告诉Spring容器自动找到UserRepository类型的Bean并注入到构造函数中。
  6. @Service、@Component、@Repository、@Controller(前面已提及部分功能)

    • 功能:这些注解都是用于标记Spring中的组件,使得Spring容器能够扫描并管理这些组件。
      • @Service:用于标记业务逻辑层的组件,表明这个类是一个服务类,主要用于处理业务逻辑。
      • @Component:是一个通用的组件注解,用于标记任何Spring管理的组件。如果一个类不符合@Service@Repository@Controller的语义,但又需要被Spring容器管理,就可以使用@Component
      • @Repository:用于标记数据访问层(如数据库访问)的组件,它还具有一些额外的功能,比如在数据访问出现异常时会自动转换为Spring的DataAccessException体系的异常。
    • 示例

    import org.springframework.stereotype.Service;

    @Service
    public class UserServiceImpl implements UserService {
    // 业务逻辑实现
    }

    import org.springframework.stereotype.Component;

    @Component
    public class MyComponent {
    // 组件功能实现
    }

    import org.springframework.stereotype.Repository;

    @Repository
    public class UserRepositoryImpl implements UserRepository {
    // 数据访问逻辑实现
    }

  7. @Configuration

    • 功能:用于标记一个类作为配置类,在这个类中可以定义Bean、导入其他配置类、设置属性源等。它相当于一个XML配置文件的Java版,用于配置Spring容器中的Bean和其他相关设置。
    • 示例

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;

    @Configuration
    public class AppConfig {
    @Bean
    public MyBean myBean() {
    return new MyBean();
    }
    }

    • 在这个AppConfig配置类中,@Bean注解用于定义一个Bean,方法名(myBean)默认作为Bean的名称,方法的返回值就是Bean的实例。
  8. @Value

    • 功能:用于将外部配置文件(如application.propertiesapplication.yml)中的属性值注入到Spring管理的组件中。可以用于注入简单类型的值,如字符串、数字等。
    • 示例

    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.stereotype.Component;

    @Component
    public class MyComponent {
    @Value(“${my.property}”)
    private String myProperty;
    // 其他逻辑
    }

    • 假设在application.properties文件中有my.property=Hello,那么myProperty字段就会被注入值"Hello"
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 2:22:43

腾讯HY-MT1.5-7B部署教程:大模型推理优化技巧

腾讯HY-MT1.5-7B部署教程:大模型推理优化技巧 1. 引言 随着全球化进程的加速,高质量、低延迟的机器翻译需求日益增长。腾讯近期开源了其混元翻译大模型系列的最新版本——HY-MT1.5,包含两个核心模型:HY-MT1.5-1.8B 和 HY-MT1.5-7…

作者头像 李华
网站建设 2026/6/5 7:45:45

多语言网站集成HY-MT1.5:实时翻译插件开发指南

多语言网站集成HY-MT1.5:实时翻译插件开发指南 随着全球化进程加速,多语言网站已成为企业拓展国际市场的重要工具。然而,传统翻译服务往往依赖云端API,存在延迟高、成本大、隐私泄露等风险。腾讯开源的混元翻译模型 HY-MT1.5 为这…

作者头像 李华
网站建设 2026/5/30 4:57:51

HY-MT1.5-1.8B量化实战:FP16与INT8对比测试

HY-MT1.5-1.8B量化实战:FP16与INT8对比测试 随着大模型在翻译任务中的广泛应用,如何在保证翻译质量的同时降低推理成本、提升部署效率,成为工程落地的关键挑战。腾讯开源的混元翻译模型HY-MT1.5系列,凭借其在多语言互译、边缘部署…

作者头像 李华
网站建设 2026/5/31 2:28:03

腾讯开源翻译模型实战:HY-MT1.5上下文翻译应用

腾讯开源翻译模型实战:HY-MT1.5上下文翻译应用 1. 引言 随着全球化进程的加速,跨语言沟通已成为企业出海、内容本地化和国际协作的核心需求。然而,传统翻译模型在面对混合语言输入、专业术语一致性以及上下文连贯性等复杂场景时,…

作者头像 李华
网站建设 2026/6/9 23:41:21

腾讯HY-MT1.5翻译大模型:多语言FAQ系统构建

腾讯HY-MT1.5翻译大模型:多语言FAQ系统构建 1. 引言:从通用翻译到场景化智能翻译的演进 随着全球化进程加速,跨语言信息交互需求激增。传统机器翻译系统在面对专业术语、混合语种对话和上下文依赖等复杂场景时,往往表现乏力。腾…

作者头像 李华
网站建设 2026/5/23 7:28:42

从零实现GRBL移植:STM32开发实战案例

从零实现GRBL移植:STM32开发实战技术深度解析当CNC遇上ARM:为什么我们不再满足于AVR?你有没有遇到过这样的场景?一台基于Arduino的3D打印机在高速打印复杂模型时突然抖动,轨迹偏移;或者一台老式雕刻机执行长…

作者头像 李华