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

企业级Javaweb开发常用注解

企业级Javaweb开发常用注解

1. Spring 框架核心注解

  1. @SpringBootApplication
    启动 Spring Boot 应用程序,结合了 @Configuration@EnableAutoConfiguration@ComponentScan
/**
* @author makeJava
*/
@SpringBootApplication
public class Sm3Application {public static void main(String[] args) {SpringApplication.run(Sm3Application.class, args);}
}
  1. @Component
    定义一个 Spring 管理的 Bean,Spring 会自动扫描并注册该类为 Bean。

  2. @Controller
    标识一个控制器类,通常用于 Web 应用中的处理请求。

  3. @Service
    标识一个服务类,Spring 会将其自动注册为 Bean,通常用于业务逻辑层。

  4. @Repository
    标识一个数据访问类,Spring 会将其自动注册为 Bean,并对数据库操作异常进行翻译。

  5. @RestController
    用于创建 RESTful Web 服务,@Controller@ResponseBody 的组合。

  6. @Configuration
    表明该类为配置类,通常用于定义 Bean。

  7. @Bean
    用于方法上,表示该方法返回的对象会被 Spring 容器管理。

  8. @ComponentScan
    用于启用 Spring 的组件扫描机制,扫描指定包下的类。

  9. @EnableAutoConfiguration
    启用 Spring Boot 的自动配置功能。

  10. @Value
    从配置文件中注入值。


2. 依赖注入相关注解

  1. @Autowired
    自动注入 Bean,支持按类型自动注入。

  2. @Qualifier
    配合 @Autowired 使用,指定具体要注入的 Bean。

  3. @Inject
    JSR-330 标准注解,与 @Autowired 功能相同。

  4. @Primary
    当有多个 Bean 满足自动注入条件时,指定优先注入哪个 Bean。

  5. @Lazy
    延迟注入,当 Bean 被第一次使用时才初始化。


3. Web 相关注解

  1. @RequestMapping
    用于处理 HTTP 请求,支持指定请求路径、方法类型等。

  2. @GetMapping
    用于处理 GET 请求,简化 @RequestMapping(method = RequestMethod.GET) 的写法。

  3. @PostMapping
    用于处理 POST 请求,简化 @RequestMapping(method = RequestMethod.POST) 的写法。

  4. @PutMapping
    用于处理 PUT 请求,简化 @RequestMapping(method = RequestMethod.PUT) 的写法。

  5. @DeleteMapping
    用于处理 DELETE 请求,简化 @RequestMapping(method = RequestMethod.DELETE) 的写法。

  6. @PathVariable
    从 URL 中提取变量。

  7. @RequestParam
    提取查询参数。

  8. @RequestBody
    获取请求体中的数据。

  9. @ResponseBody
    将方法返回值直接作为响应体。

  10. @SessionAttributes
    用于将模型中的数据存储到 HTTP 会话中。


4. 事务相关注解

  1. @Transactional
    声明事务管理,确保方法执行的原子性。

  2. @EnableTransactionManagement
    启用事务管理。


5. AOP(面向切面编程)相关注解

  1. @Aspect
    标记一个类为切面类。

  2. @Before
    在目标方法执行之前执行。

  3. @After
    在目标方法执行之后执行。

  4. @AfterReturning
    在目标方法正常执行后执行。

  5. @AfterThrowing
    在目标方法抛出异常时执行。

  6. @Around
    环绕通知,在目标方法执行前后都可以执行。


6. 缓存相关注解

  1. @EnableCaching
    启用缓存功能。

  2. @Cacheable
    标记方法的返回值可以被缓存。

  3. @CachePut
    更新缓存。

  4. @CacheEvict
    清除缓存。


7. 定时任务相关注解

  1. @EnableScheduling
    启用定时任务功能。

  2. @Scheduled
    定义定时任务,指定方法的执行间隔时间。


8. 安全相关注解

  1. @PreAuthorize
    指定方法执行前需要的权限。

  2. @Secured
    指定方法执行所需的角色。

  3. @RolesAllowed
    限制方法只能由特定角色访问。


9. 其他常见注解

  1. @Profile
    根据 Spring 配置的环境来激活或禁用 Bean。

  2. @PropertySource
    导入属性文件,用于配置文件的加载。

  3. @InitBinder
    用于自定义数据绑定,通常用于表单提交数据的转换。

  4. @Valid
    用于进行验证,常见于 Web 层的表单验证。

  5. @PostConstruct
    在 Bean 初始化后执行的方法。

  6. @PreDestroy
    在 Bean 销毁前执行的方法。


2. MyBatis 相关注解

  1. @Mapper
    标识一个接口为 MyBatis 的 Mapper。

  2. @TableName
    指定实体类对应的数据库表名。

  3. @TableId
    标识实体类的主键字段。

  4. @TableField
    指定实体类字段与数据库字段的映射关系。

  5. @Select
    执行查询操作。

  6. @Insert
    执行插入操作。

  7. @Update
    执行更新操作。

  8. @Delete
    执行删除操作。


3. JUnit 相关注解

  1. @Test
    标记一个方法为测试方法。

  2. @Before
    在每个测试方法执行之前运行的方法。

  3. @After
    在每个测试方法执行之后运行的方法。

  4. @BeforeClass
    在所有测试方法之前运行一次。

  5. @AfterClass
    在所有测试方法之后运行一次。

  6. @Ignore
    忽略某个测试方法。

  7. @RunWith
    指定测试运行器。

  8. @ParameterizedTest
    参数化测试,用不同的参数多次运行同一方法。

  9. @ValueSource
    提供参数源给参数化测试。


4. 其他常见注解

  1. @Entity
    标记一个类为 JPA 实体类。

  2. @Id
    标记实体类的主键字段。

  3. @GeneratedValue
    配置主键生成策略。

  4. @OneToMany
    配置一对多关系。

  5. @ManyToOne
    配置多对一关系。

  6. @ManyToMany
    配置多对多关系。

  7. @OneToOne
    配置一对一关系。

  8. @Column
    映射实体类的字段与数据库列。

  9. @Lob
    标识字段为大对象类型(例如:BLOB 或 CLOB)。

  10. @Transient
    标记该字段不被持久化。

  11. @JsonIgnore
    让 Jackson 忽略该字段,不进行 JSON 序列化。

  12. @JsonProperty
    改变 JSON 字段名称。

  13. @JsonInclude
    控制 JSON 序列化时是否包含该字段。

  14. @NotNull
    标注该字段不能为空。

  15. @NotEmpty
    标注该字段不能为空并且不能为空字符串。

  16. @Size
    限制字段的大小范围。

  17. @Pattern
    限制字段值的正则匹配。

  18. @AssertTrue
    断言字段值必须为 true。

  19. @AssertFalse
    断言字段值必须为 false。

  20. @Email
    验证字段是否为有效的电子邮件地址。

  21. @Range
    限制字段的数值范围。

  22. @Valid
    用于嵌套验证。

  23. @Override
    标明该方法覆盖了父类方法。

  24. @FunctionalInterface
    标明一个接口是函数式接口。

  25. @SafeVarargs
    标明可变参数方法是类型安全的。


http://www.xdnf.cn/news/464725.html

相关文章:

  • macOS中5000端口被控制中心占用问题
  • 洛谷P4907题解
  • Milvus(23):过滤
  • 《Python星球日记》 第81天:回看图像生成与风格迁移
  • Python机器学习笔记(二十三 模型评估与改进-网格搜索)
  • AcroForm 文档(打开时)级脚本对比 Excel VBA 参考
  • 关于多线程的Redis模型
  • 数据科学和机器学习的“看家兵器”——pandas模块 之二
  • c++从入门到精通(四)--动态内存,模板与泛型编程
  • python克洛伊婚纱摄影预约管理系统
  • P2679 [NOIP 2015 提高组] 子串
  • Linux之Yum源与Nginx服务篇
  • Node.js 安装 + React Flow 快速入门:环境安装与项目搭建
  • Spring Boot 和 Jedis版本搭配的建议
  • 【言语】刷题5
  • win11平台下的docker-desktop中的volume位置问题
  • Newtonsoft.Json.JsonSerializationException
  • 安卓A15系统实现修改锁屏界面默认壁纸功能
  • 多个docker-compose-xx 停止并完全卸载 删除
  • C++:字符数组与字符串指针变量的大小
  • 鸿蒙OSUniApp制作多选框与单选框组件#三方框架 #Uniapp
  • 协作赋能-1-制造业生产流程重构
  • Midjourney 最佳创作思路与实战技巧深度解析【附提示词与学习资料包下载】
  • 一些问题杂记
  • NY244NY249美光闪存颗粒NY252NY256
  • unity terrain 在生成草,树,石头等地形障碍的时候,无法触发碰撞导致人物穿过模型
  • 全链路压测实战指南:从理论到高可用架构的终极验证
  • Transformer的理解
  • Elasticsearch 分片机制高频面试题(含参考答案)
  • 【备忘踩坑】Android单元测试中读取测试assets的方法