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 小时前
我把大脑开源给了AI
人工智能·后端
橙序员小站6 小时前
Agent Skill 是什么?一文讲透 Agent Skill 的设计与实现
前端·后端
怒放吧德德6 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆7 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
开心就好20258 小时前
UniApp开发应用多平台上架全流程:H5小程序iOS和Android
后端·ios
悟空码字9 小时前
告别“屎山代码”:AI 代码整洁器让老项目重获新生
后端·aigc·ai编程
小码哥_常9 小时前
大厂不宠@Transactional,背后藏着啥秘密?
后端
奋斗小强9 小时前
内存危机突围战:从原理辨析到线上实战,彻底搞懂 OOM 与内存泄漏
后端
小码哥_常9 小时前
Spring Boot接口防抖秘籍:告别“手抖”,守护数据一致性
后端
心之语歌10 小时前
基于注解+拦截器的API动态路由实现方案
java·后端