Spring、springBoot、springCloud核心必记注解

Spring 核心必记注解

1. Bean声明与作用域
  • @Component
    通用组件标记,适用于任何层(如Service、Repository、Controller),标识类为Spring管理的Bean。
  • @Service
    业务逻辑层组件,标记业务服务类。
  • @Repository
    数据访问层组件,标记DAO类,通常与数据库交互。
  • @Controller
    Web层控制器,处理HTTP请求(如Spring MVC的Controller)。
  • @Scope
    定义Bean作用域,常用值:
    • singleton(默认,单例)
    • prototype(每次请求新建实例)
    • request/session(Web作用域)。
2. 依赖注入
  • @Autowired
    自动注入依赖(按类型匹配),可标注在字段、构造器或Setter方法。
  • @Qualifier
    配合@Autowired按名称注入,解决多个同类型Bean的歧义。
  • @Resource
    按名称注入(JSR-250标准),优先按名称匹配,找不到则按类型。
  • @Primary
    指定首选Bean,当存在多个候选时优先注入。
3. 配置与生命周期
  • @Configuration
    声明配置类,替代XML配置文件,可包含@Bean方法。
  • @Bean
    方法上声明Bean,返回对象由Spring容器管理。
  • @Profile
    根据环境激活Bean(如devprod)。
  • @PostConstruct / @PreDestroy
    Bean初始化后/销毁前的回调方法。
4. 其他常用
  • @Value
    注入配置值(如${app.name}#{}表达式)。
  • @Lazy
    延迟加载Bean,首次使用时初始化。
  • @Aspect
    声明切面类,用于AOP编程。
  • @Transactional
    声明事务性方法,管理事务边界。

Spring Boot 核心必记注解

1. 启动类注解
  • @SpringBootApplication
    组合注解,包含:
    • @Configuration:声明配置类。
    • @EnableAutoConfiguration:启用自动配置。
    • @ComponentScan:扫描组件。
2. 自动配置
  • @EnableAutoConfiguration
    启用Spring Boot自动配置机制,根据依赖自动配置Bean。
  • @Conditional系列
    条件化配置(如@ConditionalOnClass@ConditionalOnProperty),按条件激活配置。
3. Web相关
  • @RestController
    组合注解(@Controller + @ResponseBody),返回JSON/XML数据。
  • @RequestMapping及其变体
    映射HTTP请求(如@GetMapping@PostMapping)。
4. 其他常用
  • @ConfigurationProperties
    绑定配置属性到Java对象(需配合@EnableConfigurationProperties)。
  • @EnableConfigurationProperties
    启用配置属性绑定功能。

Spring Cloud 核心必记注解

1. 服务发现与消费
  • @EnableDiscoveryClient
    启用服务发现(如Eureka、Nacos)。
  • @EnableFeignClients
    启用Feign客户端,声明远程服务调用接口。
  • @FeignClient
    标记Feign客户端接口,指定服务名(如@FeignClient(value = "service-name"))。
2. 配置管理
  • @RefreshScope
    配置刷新作用域,当配置中心更新时刷新Bean属性。
  • @Value
    注入配置中心属性(如@Value("${config.key}"))。
3. 熔断与限流
  • @EnableCircuitBreaker
    启用熔断器(如Hystrix)。
  • @SentinelResource
    声明限流资源,定义限流规则。
4. 网关与路由
  • @EnableZuulProxy
    启用Zuul网关,实现路由和服务转发。
  • @RequestMapping
    在网关中定义路由规则(如@RequestMapping("/api/**"))。
5. 其他常用
  • @LoadBalanced
    声明负载均衡的RestTemplate,用于服务调用。
  • @EnableEurekaServer
    启用Eureka服务端,注册中心。

总结

  • Spring:聚焦依赖注入、Bean管理和AOP。
  • Spring Boot:简化配置,通过自动配置和启动类快速开发。
  • Spring Cloud:解决分布式系统问题,如服务发现、熔断、配置管理等。
    掌握这些注解能显著提升开发效率,是Spring生态开发的核心基础。

你可能感兴趣的:(spring,spring,boot,spring,cloud)