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 小时前
大模型输出的“隐性结构塌缩”问题及对策
前端·后端
小江的记录本1 小时前
【网络安全】《网络安全常见攻击与防御》(附:《六大攻击核心特性横向对比表》)
java·网络·人工智能·后端·python·安全·web安全
努力的小雨2 小时前
龙虾量化实战法(QClaw)
后端
橙露2 小时前
SpringBoot 整合 MinIO:分布式文件存储上传下载
spring boot·分布式·后端
2401_895521343 小时前
【Spring Security系列】Spring Security 过滤器详解与基于JDBC的认证实现
java·后端·spring
小码哥_常4 小时前
大文件上传不再卡顿:Spring Boot 分片上传、断点续传与进度条实现全解析
后端
_Evan_Yao4 小时前
RAG中的“Chunk”艺术:我试过10种切分策略后总结的结论
java·人工智能·后端·python·软件工程
今天你TLE了吗4 小时前
LLM到Agent&RAG——AI概念概述 第二章:提示词
人工智能·笔记·后端·学习
IT_陈寒5 小时前
Vue的响应式把我坑惨了,原来问题出在这
前端·人工智能·后端
shark22222226 小时前
能懂!基于Springboot的用户增删查改(三层设计模式)
spring boot·后端·设计模式