0
点赞
收藏
分享

微信扫一扫

springboot 常用注解解释

在 Spring Boot 开发中,有许多常用的注解,它们各自扮演不同的角色来简化和增强开发过程。以下是一些常见的 Spring Boot 注解及其解释:

1. @SpringBootApplication

  • 说明:这是 Spring Boot 应用的入口注解,通常用于主应用类上。它是一个复合注解,实际上组合了以下三个注解:
  • @Configuration:标记该类为 Spring 配置类。
  • @EnableAutoConfiguration:启用 Spring Boot 的自动配置功能。
  • @ComponentScan:自动扫描组件(如 @Component@Service@Repository 等)并注册到 Spring 上下文中。
  • 示例

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

2. @RestController

  • 说明:用于标记一个类作为 RESTful 控制器,简化了 @Controller@ResponseBody 的使用。所有标记为 @RestController 的类中的方法默认会返回 JSON 或 XML 数据。
  • 示例

@RestController
public class MyRestController {
    
    @GetMapping("/api/hello")
    public String hello() {
        return "Hello, World!";
    }
}

3. @Controller

  • 说明:标记一个类为 Spring MVC 控制器,用于处理 HTTP 请求并返回视图名称。通常与 @RequestMapping 或其他 HTTP 方法注解一起使用。
  • 示例

@Controller
public class MyController {
    
    @GetMapping("/home")
    public String home(Model model) {
        model.addAttribute("message", "Welcome to the home page!");
        return "home";
    }
}

4. @Service

  • 说明:标记一个类为服务层组件。通常用于定义业务逻辑层的组件。
  • 示例

@Service
public class MyService {
    
    public String process() {
        return "Processing...";
    }
}

5. @Repository

  • 说明:标记一个类为数据访问层组件。用于定义数据访问逻辑(如数据库操作)。
  • 示例

@Repository
public class MyRepository {
    
    public void save(Object obj) {
        // Save to database
    }
}

6. @Autowired

  • 说明:用于自动注入 Spring 上下文中的 Bean。可以用在字段、构造函数、或方法上。
  • 示例

@Service
public class MyService {
    
    @Autowired
    private MyRepository myRepository;
    
    public void performAction() {
        myRepository.save(new Object());
    }
}

7. @Value

  • 说明:用于注入配置文件中的值(如 application.propertiesapplication.yml)。
  • 示例

@Component
public class MyComponent {
    
    @Value("${app.name}")
    private String appName;
    
    public String getAppName() {
        return appName;
    }
}

8. @Configuration

  • 说明:用于定义 Spring 配置类,通常用于声明 Bean 定义。
  • 示例

@Configuration
public class AppConfig {
    
    @Bean
    public MyService myService() {
        return new MyService();
    }
}

9. @Bean

  • 说明:用于定义一个 Bean 方法,这些方法会被 Spring 容器管理并作为 Bean 注册。
  • 示例

@Configuration
public class AppConfig {
    
    @Bean
    public MyService myService() {
        return new MyService();
    }
}

10. @RequestMapping

  • 说明:用于映射 HTTP 请求到方法上,可以指定请求的 URL、方法类型等。也可以通过 @GetMapping@PostMapping@PutMapping@DeleteMapping 等注解来更精确地指定请求方法。
  • 示例

@RestController
@RequestMapping("/api")
public class MyRestController {
    
    @GetMapping("/greeting")
    public String greeting() {
        return "Hello, World!";
    }
    
    @PostMapping("/create")
    public ResponseEntity<String> create(@RequestBody MyEntity entity) {
        // Process creation
        return ResponseEntity.ok("Created");
    }
}

11. @Transactional

  • 说明:用于定义事务边界,标记一个方法或类的方法需要事务管理。通常用于服务层方法。
  • 示例

@Service
public class MyService {
    
    @Transactional
    public void performTransactionalOperation() {
        // Business logic that requires a transaction
    }
}

12. @EnableAutoConfiguration

  • 说明:启用 Spring Boot 的自动配置功能。这个注解通常由 @SpringBootApplication 代替,但在其他配置类中也可以单独使用。
  • 示例

@Configuration
@EnableAutoConfiguration
public class MyConfig {
    // Configuration beans
}

这些注解是 Spring Boot 开发中的基础构建块,掌握它们将帮助我们更高效地创建和管理 Spring Boot 应用程序。

举报

相关推荐

0 条评论