Spring Boot 核心注解

Spring Boot 核心注解

一、启动类与配置类

1. @SpringBootApplication

作用 :应用入口,整合 @Configuration@EnableAutoConfiguration@ComponentScan。 • 示例

java 复制代码
@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

2. @Configuration

作用 :标记配置类,用于定义 Bean。 • 常用搭配@Bean示例

java 复制代码
@Configuration
public class AppConfig {
    @Bean
    public MyService myService() {
        return new MyService();
    }
}

二、控制器与 REST API

3. @RestController

作用@Controller + @ResponseBody,返回 JSON/XML 数据。 • 示例

java 复制代码
@RestController
@RequestMapping("/api/users")
public class UserController { ... }

4. @RequestMapping

作用 :映射请求路径,支持类/方法级别。 • 属性pathmethod(GET/POST等)。 • 示例

java 复制代码
@RequestMapping("/users")
public class UserController { ... }

@PostMapping("/create")
public User createUser(@Valid @RequestBody User user) { ... }

5. HTTP 方法注解

@GetMapping :GET 请求

@PostMapping :POST 请求

@PutMapping :PUT 请求

@DeleteMapping:DELETE 请求


三、依赖注入

6. @Autowired

作用 :自动注入 Spring 容器中的 Bean。 • 适用场景 :字段、构造方法、方法参数。 • 示例

java 复制代码
@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;
}

7. 组件注解

注解 作用 使用场景
@Component 通用组件 任意层
@Service 业务逻辑层 Service 类
@Repository 数据访问层 DAO 接口/实现类
@Controller MVC 控制器 控制器类

四、数据访问与 JPA

8. @Entity

作用 :标记 JPA 实体类,对应数据库表。 • 示例

java 复制代码
@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
}

9. @Repository

作用 :继承 JpaRepository,提供 CRUD 和分页功能。 • 示例

java 复制代码
public interface UserRepository extends JpaRepository<User, Long> { ... }

五、事务管理

10. @Transactional

作用 :声明式事务管理,自动控制事务提交/回滚。 • 示例

java 复制代码
@Service
@Transactional
public class UserService {
    public void createUser(User user) {
        userRepository.save(user);
        // 异常触发回滚
    }
}

六、验证与异常处理

11. @Validated

作用 :启用方法参数和返回值验证。 • 示例

java 复制代码
@Validated
@Service
public class UserService {
    public void createUser(@Valid @RequestBody User user) { ... }
}

12. @Valid / @NotBlank

作用 :字段验证,如非空、格式校验。 • 示例

java 复制代码
public class User {
    @NotBlank(message = "用户名不能为空")
    private String name;
}

七、其他常用注解

13. @PathVariable

作用 :绑定 URL 路径参数。 • 示例

java 复制代码
@GetMapping("/{id}")
public User getUserById(@PathVariable Long id) { ... }

14. @RequestParam

作用 :绑定 HTTP 请求参数。 • 示例

java 复制代码
@GetMapping("/search?name={name}")
public List<User> searchUser(@RequestParam String name) { ... }

八、核心注解速查表

注解 作用 典型场景
@SpringBootApplication 应用启动类 主类
@RestController RESTful API 控制器 控制器类
@Autowired 依赖注入 字段/构造方法
@Entity JPA 实体类映射 数据模型类
@Repository 数据访问层组件 DAO 接口
@Transactional 声明式事务管理 服务类方法
@GetMapping 映射 GET 请求 控制器方法
@PathVariable 绑定 URL 路径参数 控制器方法参数
@Validated 启用方法参数验证 服务类

九、学习建议

  1. 动手实践:创建项目,逐步添加注解观察效果。
  2. 文档参考Spring Boot 官方文档
  3. 避坑提示 : • @SpringBootApplication 的扫描路径默认为主类包及其子包。 • 使用 @Valid 时需在启动类添加 @Validated
  4. 进阶学习:结合 Spring Security、MyBatis 等扩展注解。

整理说明

以上笔记覆盖了 Spring Boot 开发的核心注解,建议通过小项目(如 CRUD API、集成数据库)逐步掌握每个注解的实际用法。遇到问题优先查阅官方文档和社区资源(如 Stack Overflow)。

相关推荐
可爱的霸王龙1 小时前
SpringBoot整合JWT
java·后端·jwt
爱的叹息1 小时前
Spring容器从启动到关闭的注解使用顺序及说明
java·后端·spring
蜡笔小祎在线学习2 小时前
小林coding-12道Spring面试题
java·后端·spring
知否技术2 小时前
Node登陆认证实战!10分钟手把手教会你!
后端·node.js
movee3 小时前
十分钟从零开始开发一个自己的MCP server(二)
后端·llm·mcp
movee3 小时前
十分钟从零开始开发一个自己的MCP server(一)
后端·llm·mcp
Adellle3 小时前
Java进阶
java·后端·面试
G探险者3 小时前
项目日志是否应该启用文件压缩?
运维·后端
Asthenia04123 小时前
Spring Boot 的自动装配原理:@EnableAutoConfiguration/AutoConfigurationImportSelector/条件
后端
Asthenia04123 小时前
理解 MySQL 的分组机制:GROUP BY、SELECT、HAVING 及索引优化
后端