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)。

相关推荐
S***26753 小时前
基于SpringBoot和Leaflet的行政区划地图掩膜效果实战
java·spring boot·后端
@大迁世界5 小时前
相信我兄弟:Cloudflare Rust 的 .unwrap() 方法在 330 多个数据中心引发了恐慌
开发语言·后端·rust
5***g2986 小时前
新手如何快速搭建一个Springboot项目
java·spring boot·后端
2***B4497 小时前
Rust在系统编程中的内存安全
开发语言·后端·rust
U***e637 小时前
Rust错误处理最佳实践
开发语言·后端·rust
q***47187 小时前
Spring中的IOC详解
java·后端·spring
码事漫谈8 小时前
C++小白最容易踩的10个坑(附避坑指南)
后端
码事漫谈8 小时前
性能提升11.4%!C++ Vector的reserve()方法让我大吃一惊
后端
稚辉君.MCA_P8_Java9 小时前
Gemini永久会员 Java中的四边形不等式优化
java·后端·算法
稚辉君.MCA_P8_Java9 小时前
通义 插入排序(Insertion Sort)
数据结构·后端·算法·架构·排序算法