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

java 开发常用框架的高级注解使用汇总及对应demo演示

以下是 Java 开发常用框架的高级注解使用汇总及对应 demo 演示:

Spring 核心注解​

1. @Component@Service@Repository@Controller
  • 作用:定义 Spring 管理的 Bean,区分业务层、数据层、控制层等[1][3][5]。
  • Demo
    // Service 层
    @Service
    public class OrderService { /* 业务逻辑 */ }// DAO 层
    @Repository
    public interface UserRepository extends JpaRepository<User, Long> { /* 数据访问 */ }// 控制层
    @Controller
    public class UserController { /* HTTP 请求处理 */ }
    
2. @Autowired
  • 作用:自动注入依赖的 Bean,默认按类型匹配[1][3][5]。
  • Demo
    @Service
    public class UserService {private final UserRepository userRepository; // 自动注入 DAO 层 Bean@Autowiredpublic UserService(UserRepository userRepository) {this.userRepository = userRepository;}
    }
    
3. @Qualifier
  • 作用:当存在多个同类型 Bean 时,指定注入的具体 Bean[1][3]。
  • Demo
    @Autowired
    @Qualifier("primaryOrderService") // 指定 Bean 名称
    private OrderService orderService;
    
4. @Value
  • 作用:从配置文件中注入值到字段[1][4]。
  • Demo
    @Configuration
    @PropertySource("classpath:application.properties")
    public class PropertyConfig {@Value("${app.name}") // 注入属性值private String appName;
    }
    
5. @Transactional
  • 作用:声明方法或类使用事务管理,确保数据一致性[1][4]。
  • Demo
    @Service
    public class PaymentService {@Transactional(rollbackFor = Exception.class) // 事务回滚条件public void processPayment(Payment payment) {// 支付逻辑}
    }
    
6. @PostConstruct / @PreDestroy
  • 作用:在 Bean 初始化后执行初始化逻辑;在 Bean 销毁前执行资源清理逻辑[3][5]。
  • Demo
    @Component
    public class DataInitializer {@PostConstruct // 初始化时执行public void init() {System.out.println("初始化数据...");}@PreDestroy // 销毁前执行public void cleanup() {System.out.println("清理资源...");}
    }
    
7. @Scope
  • 作用:指定 Bean 的作用域(单例、原型、请求、会话等)[5][6]。
  • Demo
    @Scope("prototype") // 每次请求生成新实例
    @Component
    public class RequestScopedBean { /* ... */ }
    

Spring MVC 注解​

1. @RestController
  • 作用:组合 @Controller@ResponseBody,直接返回 JSON/XML 数据[4][6]。
  • Demo
    @RestController
    @RequestMapping("/api/users")
    public class UserApi {@GetMapping("/{id}") // 处理 GET 请求public User getUser(@PathVariable Long id) { /* ... */ }@PostMapping // 处理 POST 请求public User createUser(@RequestBody User user) { /* ... */ }
    }
    
2. @RequestParam / @PathVariable / @RequestBody
  • 作用:绑定请求参数到方法参数[4][6]。
  • Demo
    @GetMapping("/search")
    public List<User> search(@RequestParam(defaultValue = "1") int page, // 查询参数@PathVariable Long id, // URL 路径变量@RequestBody UserQuery query // 请求体参数
    ) { /* ... */ }
    

MyBatis-Plus 注解​

1. @TableName
  • 作用:指定数据库表名[4]。
  • Demo
    @TableName("sys_user") // 映射到 sys_user 表
    @Data
    public class User { /* ... */ }
    
2. @TableId
  • 作用:定义主键及其生成策略[4]。
  • Demo
    @TableId(type = IdType.AUTO) // 自增主键
    private Long id;
    
3. @Version
  • 作用:乐观锁控制,防止并发冲突[4]。
  • Demo
    @Version // 乐观锁字段
    private Integer version;
    

Swagger 注解​

1. @Api / @ApiOperation
  • 作用:生成 API 文档并描述接口功能[4]。
  • Demo
    @Api(tags = "用户管理") // 控制器分组描述
    @RestController
    public class UserController {@ApiOperation("根据 ID 查询用户") // 接口方法描述@GetMapping("/{id}")public User getUser(@PathVariable Long id) { /* ... */ }
    }
    

JPA/Hibernate 注解​

1. @Entity / @Table
  • 作用:声明 JPA 实体并指定数据库表[4]。
  • Demo
    @Entity
    @Table(name = "users") // 映射到 users 表
    public class User { /* ... */ }
    
2. @GeneratedValue
  • 作用:定义主键生成策略[4]。
  • Demo
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY) // 自增主键
    private Long id;
    
3. @Column
  • 作用:定义字段与数据库列的映射关系[4]。
  • Demo
    @Column(name = "user_name", length = 50) // 映射到 user_name 列
    private String userName;
    

Lombok 注解​

1. @Data
  • 作用:自动生成 getter、setter、toStringequalshashCode 等方法[2][4]。
  • Demo
    @Data
    public class User {private String name;private int age;
    }
    
2. @Builder
  • 作用:提供建造者模式,简化对象创建[4]。
  • Demo
    @Builder
    public class User {private String name;private int age;
    }
    // 使用方式:User user = User.builder().name("Alice").age(20).build();
    

其他实用注解​

1. @Slf4j
  • 作用:自动注入日志对象(如 log.info())[2]。
  • Demo
    @Slf4j
    public class UserService {public void doSomething() {log.info("正在执行操作...");}
    }
    
2. @AllArgsConstructor / @NoArgsConstructor
  • 作用:自动生成全参/无参构造器[4]。
  • Demo
    @AllArgsConstructor
    @NoArgsConstructor
    public class User {private String name;private int age;
    }
    

Spring Boot 特有注解​

1. @SpringBootApplication
  • 作用:启动类注解,组合了 @Configuration@EnableAutoConfiguration@ComponentScan[8]。
  • Demo
    @SpringBootApplication
    public class Application {public static void main(String[] args) {SpringApplication.run(Application.class, args);}
    }
    
2. @ConfigurationProperties
  • 作用:批量绑定配置文件中的属性到对象[4]。
  • Demo
    @ConfigurationProperties(prefix = "app")
    public class AppConfig {private String name;private int timeout;// getters and setters
    }
    

综上所述,Java开发常用框架提供了丰富的高级注解,涵盖Spring核心、MVC、MyBatis-Plus等多个方面。通过运用这些注解,可以显著提升开发效率、简化代码、增强可维护性,并充分利用框架的特性来实现各种功能需求。

http://www.dtcms.com/a/461388.html

相关文章:

  • 盲盒小程序抽赏玩法拆解:六大核心模式 + 从获客到变现的增长路径
  • 支付网站开发怎么做账网站被墙了怎么办
  • ip获取城市省份信息
  • 基于pth模型文件,使用flask库将服务端部署到开发者电脑
  • 【调度器】DolphinScheduler任务钉钉告警
  • 软考-系统架构设计师 软件架构风格详细讲解
  • zookeeper:架构原理和使用场景
  • 东莞网站建设的方案网站的建设及发布步骤
  • mac下Docker安装nacos
  • Spring Boot事务详解与实战应用
  • 【Spring Boot JAR 解压修改配置后重新打包全流程(避坑指南)】
  • 聚焦生活照护能力培育:老年生活照护实训室建设清单的模块设计与资源整合
  • 1、pycharm相关知识
  • 专门做画册封面的网站网络维护是什么工作
  • 网站排名优化效果国内flash网站
  • [特殊字符] IDEA 性能优化实战(32G 内存电脑专用篇)
  • Python OCR 技术实践:从图片中提取文本和坐标
  • 深入理解 Goroutine 调度策略:Go 语言并发的核心机制
  • 泰安哪里可以做网站软件开发怎么学
  • CAD随机多边形插件2D专业版
  • 【Qt MOC预处理器解读与使用指南】
  • 最少的钱做网站如何确定一个网站的关键词
  • 网站验证:确保在线安全与用户体验的关键步骤
  • vscode控制outline不显示变量
  • 视频网站怎么做网站引流做网站宁波
  • SpringBoot简单网络点餐管理系统
  • linux串口驱动学习
  • 网站估值门户网站的发布特点
  • web前端学习FastAPI
  • 中级经济师:学习科目、考试科目、收益