当前位置: 首页 > news >正文

Spring常用注解汇总

1. IOC容器与Bean管理

注解说明示例
@Component通用注解,标记类为Spring Bean

@Component

public class MyService { ... }

@Controller标记Web控制器(应用在MVC的控制层)

@Controller

public class UserController { ... }

@Service标记业务逻辑层组件(Service层)

@Service

public class UserService { ... }

@Repository标记数据访问层组件(DAO层),自动转换数据访问异常

@Repository

public class UserDao { ... }

@Configuration标记配置类,用于定义Bean

@Configuration

public class AppConfig { ... }

@Bean在配置类中定义Bean,常用于第三方库集成

@Bean

public DataSource dataSource() { return new HikariDataSource(); }

@Autowired自动注入依赖(按类型匹配,优先构造器注入)

@Autowired

private UserService userService;

@Qualifier按名称注入Bean(解决同类型多个Bean的歧义)

@Autowired

@Qualifier("mysqlDataSource")

DataSource dataSource;

@Primary标记优先注入的Bean

@Bean

@Primary

public DataSource primaryDataSource() { ... }

@Value注入配置文件中的值

@Value("${app.timeout}")

private int timeout;

@Scope

定义创建Bean的模式(方法上得有@Bean)

类型包括:Singleton、Prototype、Request、Session

2. Web开发(Spring MVC)

注解说明示例
@RestController@Controller + @ResponseBody,用于RESTAPI

@RestController

public class UserApi { ... }

@RequestMapping映射HTTP请求到方法@RequestMapping(value = "/users", method = RequestMethod.GET)
@GetMapping处理HTTP GET请求,用于查询资源

@GetMapping("/{id}")

public User getById(@PathVariable Long id)

@PostMapping处理HTTP POST请求,用于创建新资源(通常配合@RequestBody接收请求体数据)

@PostMapping("/create")

public User create(@RequestBody User user)

@PutMapping处理HTTP PUT请求,用于全量更新资源(需明确指定资源标识如/users/{id})
@PutMapping("/users/{id}")
public ResponseEntity<User> updateUser(@PathVariable Long id, @RequestBody User user
) {...}
@DeleteMapping处理HTTP DELETE请求,用于删除资源
@DeleteMapping("/users/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable Long id) {...}
@PathVariable从URL路径中获取变量@GetMapping("/users/{id}")
@RequestParam获取请求参数(支持默认值和类型转换)public List<User> search(@RequestParam(defaultValue = "10") int limit)
@RequestBody将请求体(JSON/XML)转换为Java对象@PostMapping public User create(@RequestBody User user)
@ResponseBody将返回值写入响应体(如返回JSON)

@ResponseBody

public User getUser() { ... }

@CrossOrigin允许跨域请求@CrossOrigin(origins = "http://example.com")

3. 数据访问与事务

注解说明示例
@Transactional声明事务(方法或级别)

@Transactional

public void updateUser(User user) { ... }

@EntityJPA注解(标记数据库实体类)

@Entity

@Table(name = "users")

public class User { ... }

@Repository数据库访问层组件(Spring Data JPA自动实现接口)

@Repository

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

@Query自定义JPQL或原生SQL查询

@Query("SELECT u FROM User u WHERE u.age > :age")

List<User> findByAge(@Param("age") int ag

4. AOP与切面编程

注解说明示例
@Aspect声明切面类

@Aspect

@Component

public class LoggingAspect { ... }

@Before前置通知(方法执行前执行)@Before("execution(* com.example.service.*.*(..))")
@After后置通知(方法执行后执行,无论是否异常)@After("execution(* com.example.service.*.*(..))")
@Around环绕通知(可控制方法执行流程)@Around("execution(* com.example.service.*.*(..))")
@Pointcut定义切点表达式(复用切点逻辑)@Pointcut("execution(* com.example.service.*.*(..))")

5. SpringBoot特有注解

注解说明示例
@SpringBootApplication启动类注解(组合了@Configuration,@EnableAutoConfiguration,)

@SpringBootApplication

public class MyApp { ... }

@EnableAutoConfiguration启动自动配置(Spring Boot根据依赖自动配置Bean)通常由@SpringBootApplication包含
@ConditionalOnProperty根据配置文件条件注册Bean@Bean @ConditionalOnProperty(name = "feature.enabled", havingValue = "true")
@SpringBootTest启动完整Spring上下文集成测试@SpringBootTest class MyIntegrationTest { ... }

相关文章:

  • 虚拟机检测与反调试对抗技术
  • opengl中的旋转、平移、缩放矩阵生成函数
  • 力扣53.最大子数组和
  • CUL-CHMLFRP启动器 windows图形化客户端
  • 《深入剖析鸿蒙生态原生应用:一次开发多端部署的技术革新》
  • 23种设计模式-工厂方法(Factory Method)设计模式
  • ccfcsp2701如此编码
  • 统一开放世界与开放词汇检测:YOLO-UniOW无需增量学习的高效通用开放世界目标检测框架
  • 【机密计算顶会解读】11:ACAI——使用 Arm 机密计算架构保护加速器执行
  • FPGA中串行执行方式之计数器控制
  • snmp/mib采用子代理模式,编码,部署
  • 手抖的预防策略
  • 【USTC 计算机网络】第二章:应用层 - TCP UDP 套接字编程
  • [unity 组件] Content Size Fitter 横向填充不满解决办法
  • Json的应用实例——cad 二次开发c#
  • 从零开始学可靠消息投递:分布式事务的“最终一致性”方案
  • 独立组网和非独立组网
  • 文章防洗稿隐蔽混淆软件
  • 102.在Vue3中使用OpenLayers实现定位动画(平移-弹性平移-飞行)
  • 梦回杭州...
  • 查幽门螺杆菌的这款同位素长期被海外垄断,秦山核电站实现突破
  • 南昌上饶领导干部任前公示:2人拟提名为县(市、区)长候选人
  • 奥古斯都时代的历史学家李维
  • 长三角首次,在铁三赛事中感受竞技与生态的共鸣
  • 证券日报:降准今日正式落地,年内或还有降准空间
  • 上海市国防动员办公室副主任吴斌接受审查调查