Spring Boot核心注解速查指南

Spring Boot 常用注解分类整理

Spring Boot 提供了丰富的注解,用于简化开发流程、配置管理和组件定义。以下分类整理了常见的注解及其用法示例。

核心注解

@SpringBootApplication
组合注解,包含 @Configuration@EnableAutoConfiguration@ComponentScan,用于标记主启动类。

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

@RestController
标记类为 RESTful 控制器,自动将返回值序列化为 JSON/XML。

@RestController
@RequestMapping("/api")
public class UserController {
    @GetMapping("/users")
    public List<User> getUsers() {
        return userService.findAll();
    }
}

依赖注入与组件扫描

@Component
通用组件注解,标记类为 Spring 管理的 Bean。

@Component
public class MyComponent {
    // 业务逻辑
}

@Service
标记类为业务逻辑层组件。

@Service
public class UserService {
    public List<User> findAll() {
        // 查询逻辑
    }
}

@Repository
标记类为数据访问层组件,通常用于 DAO 或 JPA 接口。

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
}

@Autowired
自动注入依赖,可配合 @Qualifier 指定具体 Bean。

@Service
public class OrderService {
    @Autowired
    private UserRepository userRepository;
}

配置相关注解

@Configuration
标记类为配置类,定义 Bean 的创建方式。

@Configuration
public class AppConfig {
    @Bean
    public DataSource dataSource() {
        return new HikariDataSource();
    }
}

@Value
注入配置文件中的属性值。

@Value("${app.name}")
private String appName;

@ConfigurationProperties
批量绑定配置属性到 Java 对象。

@ConfigurationProperties(prefix = "database")
public class DatabaseConfig {
    private String url;
    private String username;
    // getters & setters
}

Web 相关注解

@RequestMapping
定义请求映射路径,支持类级别和方法级别。

@RestController
@RequestMapping("/api/users")
public class UserController {
    @GetMapping("/{id}")
    public User getUser(@PathVariable Long id) {
        return userService.findById(id);
    }
}

@GetMapping / @PostMapping
简化 HTTP 方法映射的快捷注解。

@PostMapping("/create")
public User createUser(@RequestBody User user) {
    return userService.save(user);
}

@PathVariable
提取 URL 路径中的变量。

@GetMapping("/{id}")
public User getUser(@PathVariable Long id) {
    // 逻辑
}

@RequestParam
提取查询参数或表单数据。

@GetMapping("/search")
public List<User> searchUsers(@RequestParam String keyword) {
    return userService.search(keyword);
}

数据持久化注解

@Entity
标记类为 JPA 实体。

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

@Transactional
声明事务边界,适用于方法或类。

@Service
public class OrderService {
    @Transactional
    public void placeOrder(Order order) {
        // 事务操作
    }
}

测试相关注解

@SpringBootTest
标记测试类,加载完整的 Spring 上下文。

@SpringBootTest
public class UserServiceTest {
    @Autowired
    private UserService userService;
}

@Test
标记测试方法。

@Test
public void testFindUser() {
    User user = userService.findById(1L);
    assertNotNull(user);
}

条件注解

@ConditionalOnProperty
根据配置属性条件化加载 Bean。

@Bean
@ConditionalOnProperty(name = "feature.enabled", havingValue = "true")
public FeatureService featureService() {
    return new FeatureServiceImpl();
}

@Profile
指定 Bean 或配置仅在特定 Profile 下生效。

@Configuration
@Profile("dev")
public class DevConfig {
    // 开发环境配置
}

异步与定时任务

@Async
标记方法为异步执行。

@Service
public class NotificationService {
    @Async
    public void sendEmail(String email) {
        // 异步发送邮件
    }
}

@Scheduled
定义定时任务执行规则。

@Scheduled(fixedRate = 5000)
public void refreshCache() {
    // 每 5 秒执行一次
}

以上注解覆盖了 Spring Boot 开发中的常见场景,合理使用可显著提升开发效率。

BbS.okacop000.info/PoSt/1120_938872.HtM
BbS.okacop001.info/PoSt/1120_641247.HtM
BbS.okacop002.info/PoSt/1120_453649.HtM
BbS.okacop003.info/PoSt/1120_091940.HtM
BbS.okacop004.info/PoSt/1120_604878.HtM
BbS.okacop005.info/PoSt/1120_730928.HtM
BbS.okacop006.info/PoSt/1120_247350.HtM
BbS.okacop007.info/PoSt/1120_369188.HtM
BbS.okacop008.info/PoSt/1120_505466.HtM
BbS.okacop009.info/PoSt/1120_029727.HtM
BbS.okacop000.info/PoSt/1120_314734.HtM
BbS.okacop001.info/PoSt/1120_967509.HtM
BbS.okacop002.info/PoSt/1120_686446.HtM
BbS.okacop003.info/PoSt/1120_221537.HtM
BbS.okacop004.info/PoSt/1120_567760.HtM
BbS.okacop005.info/PoSt/1120_661471.HtM
BbS.okacop006.info/PoSt/1120_320560.HtM
BbS.okacop007.info/PoSt/1120_074827.HtM
BbS.okacop008.info/PoSt/1120_323160.HtM
BbS.okacop009.info/PoSt/1120_626724.HtM
BbS.okacop000.info/PoSt/1120_935339.HtM
BbS.okacop001.info/PoSt/1120_585287.HtM
BbS.okacop002.info/PoSt/1120_954250.HtM
BbS.okacop003.info/PoSt/1120_262386.HtM
BbS.okacop004.info/PoSt/1120_572990.HtM
BbS.okacop005.info/PoSt/1120_785467.HtM
BbS.okacop006.info/PoSt/1120_384357.HtM
BbS.okacop007.info/PoSt/1120_916440.HtM
BbS.okacop008.info/PoSt/1120_626119.HtM
BbS.okacop009.info/PoSt/1120_258480.HtM
BbS.okacop000.info/PoSt/1120_064476.HtM
BbS.okacop001.info/PoSt/1120_817254.HtM
BbS.okacop002.info/PoSt/1120_617857.HtM
BbS.okacop003.info/PoSt/1120_671533.HtM
BbS.okacop004.info/PoSt/1120_649243.HtM
BbS.okacop005.info/PoSt/1120_804968.HtM
BbS.okacop006.info/PoSt/1120_772056.HtM
BbS.okacop007.info/PoSt/1120_606651.HtM
BbS.okacop008.info/PoSt/1120_551718.HtM
BbS.okacop009.info/PoSt/1120_299132.HtM
BbS.okacop000.info/PoSt/1120_268537.HtM
BbS.okacop001.info/PoSt/1120_434902.HtM
BbS.okacop002.info/PoSt/1120_101378.HtM
BbS.okacop003.info/PoSt/1120_544234.HtM
BbS.okacop004.info/PoSt/1120_906902.HtM
BbS.okacop005.info/PoSt/1120_700343.HtM
BbS.okacop006.info/PoSt/1120_864181.HtM
BbS.okacop007.info/PoSt/1120_751292.HtM
BbS.okacop008.info/PoSt/1120_368710.HtM
BbS.okacop009.info/PoSt/1120_121360.HtM
BbS.okacop000.info/PoSt/1120_933205.HtM
BbS.okacop001.info/PoSt/1120_916689.HtM
BbS.okacop002.info/PoSt/1120_185612.HtM
BbS.okacop003.info/PoSt/1120_502954.HtM
BbS.okacop004.info/PoSt/1120_384179.HtM
BbS.okacop005.info/PoSt/1120_384627.HtM
BbS.okacop006.info/PoSt/1120_431007.HtM
BbS.okacop007.info/PoSt/1120_589080.HtM
BbS.okacop008.info/PoSt/1120_267329.HtM
BbS.okacop009.info/PoSt/1120_579439.HtM
BbS.okacop000.info/PoSt/1120_854484.HtM
BbS.okacop001.info/PoSt/1120_188972.HtM
BbS.okacop002.info/PoSt/1120_195899.HtM
BbS.okacop003.info/PoSt/1120_552534.HtM
BbS.okacop004.info/PoSt/1120_507285.HtM
BbS.okacop005.info/PoSt/1120_521403.HtM
BbS.okacop006.info/PoSt/1120_555179.HtM
BbS.okacop007.info/PoSt/1120_583936.HtM
BbS.okacop008.info/PoSt/1120_579658.HtM
BbS.okacop009.info/PoSt/1120_491065.HtM
BbS.okacop000.info/PoSt/1120_607645.HtM
BbS.okacop001.info/PoSt/1120_459156.HtM
BbS.okacop002.info/PoSt/1120_904814.HtM
BbS.okacop003.info/PoSt/1120_780072.HtM
BbS.okacop004.info/PoSt/1120_178930.HtM
BbS.okacop005.info/PoSt/1120_124249.HtM
BbS.okacop006.info/PoSt/1120_080388.HtM
BbS.okacop007.info/PoSt/1120_401035.HtM
BbS.okacop008.info/PoSt/1120_451735.HtM
BbS.okacop009.info/PoSt/1120_878085.HtM

#牛客AI配图神器#

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务