在哪个网站开发外贸业务开发公司质量管理流程
在Java开发中,注解(Annotation)广泛用于简化代码、配置元数据、框架集成等场景。以下是不同场景下常用的注解分类整理:
一、核心Java注解(内置)
-  
@Override表示方法重写父类或接口的方法,编译器会检查方法签名是否正确。 -  
@Deprecated标记类、方法或字段已过时,使用时编译器会生成警告。 -  
@SuppressWarnings抑制编译器警告(如"unchecked"或"deprecation")。 -  
@SafeVarargs用于抑制泛型可变参数(varargs)的类型安全警告。 -  
@FunctionalInterface标记接口为函数式接口(仅允许一个抽象方法)。 
二、Spring框架注解
核心与依赖注入
-  
@Component标记为Spring管理的通用组件。 -  
@Service标记业务逻辑层(Service层)组件。 -  
@Repository标记数据访问层(DAO层)组件,自动处理数据库异常。 -  
@Controller/@RestController标记Web控制器(@RestController返回JSON)。 -  
@Autowired自动注入依赖(推荐改用构造器注入,但注解仍常见)。 -  
@Qualifier指定注入的Bean名称,解决多个同类型Bean的冲突。 -  
@Value注入配置文件中的属性值(如@Value("${app.name}"))。 
Web与REST API
-  
@RequestMapping定义请求映射路径(可细分为@GetMapping,@PostMapping等)。 -  
@PathVariable从URL路径中获取参数(如/user/{id})。 -  
@RequestParam从请求参数中获取值(如/user?name=John)。 -  
@RequestBody将HTTP请求体反序列化为Java对象(如JSON → DTO)。 -  
@ResponseBody将方法返回值序列化为HTTP响应体(如返回JSON)。 
配置与AOP
-  
@Configuration标记类为配置类,定义Bean。 -  
@Bean在配置类中声明方法返回的Bean。 -  
@Profile指定Bean在特定环境下生效(如@Profile("dev"))。 -  
@Transactional声明事务管理(方法或类级别)。 -  
@Aspect定义切面类,结合@Before,@After等实现AOP。 
三、JPA/Hibernate(数据库)
-  
@Entity标记类对应数据库表。 -  
@Table指定表名(如@Table(name = "users"))。 -  
@Id标记主键字段。 -  
@GeneratedValue配置主键生成策略(如自增、UUID)。 -  
@Column定义字段与列的映射(如@Column(name = "user_name"))。 -  
@OneToMany/@ManyToOne定义实体间的一对多、多对一关系。 -  
@Query在Repository中自定义JPQL或原生SQL查询。 
四、Lombok注解(简化代码)
-  
@Data自动生成Getter/Setter、equals()、hashCode()和toString()。 -  
@Getter/@Setter单独生成Getter或Setter方法。 -  
@NoArgsConstructor/@AllArgsConstructor生成无参构造器和全参构造器。 -  
@Builder提供Builder模式支持。 -  
@Slf4j自动生成日志对象(如log.info())。 
五、测试相关
-  
JUnit 5
-  
@Test: 标记测试方法。 -  
@BeforeEach/@AfterEach: 每个测试前后的操作。 -  
@Mock/@InjectMocks(Mockito): 模拟依赖注入。 
 -  
 -  
Spring Boot Test
-  
@SpringBootTest: 启动完整Spring上下文测试。 -  
@MockBean: 模拟并替换Spring上下文中的Bean。 
 -  
 
六、其他常用注解
-  
Jackson(JSON序列化)
-  
@JsonProperty: 指定JSON字段名。 -  
@JsonIgnore: 忽略字段序列化。 
 -  
 -  
Swagger(API文档)
-  
@ApiOperation: 描述API接口功能。 -  
@ApiParam: 描述接口参数。 
 -  
 -  
Spring Boot
-  
@SpringBootApplication: 主启动类注解(组合了@Configuration、@ComponentScan等)。 -  
@EnableScheduling: 启用定时任务。 
 -  
 
示例代码片段
 // Spring Boot + JPA 示例
@RestController
@RequestMapping("/api/users")
public class UserController {@Autowiredprivate UserService userService;
@GetMapping("/{id}")public User getUser(@PathVariable Long id) {return userService.findById(id);}
}
// Lombok 简化实体类
@Data
@Entity
@Table(name = "users")
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;@Column(name = "user_name")private String username;
} 
 
这些注解能显著提升开发效率,具体使用需结合项目框架和需求调整。
