自己做一个网站需要多少钱,做百度推广和企业网站那个有效果吗,福建省建设工程招投标信息网,中堂东莞网站建设在Java开发中#xff0c;注解#xff08;Annotation#xff09;广泛用于简化代码、配置元数据、框架集成等场景。以下是不同场景下常用的注解分类整理#xff1a; 一、核心Java注解#xff08;内置#xff09; Override 表示方法重写父类或接口的方法#xff0c;编译器会…在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?nameJohn。 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 / InjectMocksMockito: 模拟依赖注入。 Spring Boot Test SpringBootTest: 启动完整Spring上下文测试。 MockBean: 模拟并替换Spring上下文中的Bean。 六、其他常用注解 JacksonJSON序列化 JsonProperty: 指定JSON字段名。 JsonIgnore: 忽略字段序列化。 SwaggerAPI文档 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 {IdGeneratedValue(strategy GenerationType.IDENTITY)private Long id;Column(name user_name)private String username;
} 这些注解能显著提升开发效率具体使用需结合项目框架和需求调整。