首页 > 编程语言 >Java中常用注解

Java中常用注解

时间:2024-09-22 09:36:34浏览次数:9  
标签:常用 Java String hello public return 注解 class

1、简介:

Java 中的注解(Annotations)是一种元数据,可以附加到 Java 类、方法、局部变量、参数等上,以提供额外的信息。Java 自从引入注解特性以来,已经被广泛应用于各种框架和工具中,用于增强代码的功能性或者简化开发工作。

2、标准注解 (Standard Annotations)

2-1、@Override:表明一个方法重写了父类的方法
@Override
public void someMethod() {
    // 方法体
}
2-2、@SuppressWarnings:用来抑制警告信息
@SuppressWarnings("unchecked")
public void unsafeOperation() {
    // 方法体
}
2-3、@SafeVarargs:用来标记方法或构造函数,表明它们可以安全地接受方差类型的参数
@Override
public void someMethod() {
    // 方法体
}

2、元注解(Meta-Annotations)

2-1、@Retention:指定注解的生命周期
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {}
2-2、@Target:指定注解适用的目标类型
@Target(ElementType.METHOD)
public @interface MyMethodAnnotation {}
2-3、@Documented:表明该注解应该被包含在 javadoc 中
@Documented
public @interface MyDocAnnotation {}
2-4、@Inherited:使子类能够继承父类上的注解
@Inherited
public @interface InheritedAnnotation {}

3、SpringBoot 常用注解

SpringBoot 介绍
Spring Boot 是一个基于 Spring 框架的快速应用开发平台,它简化了 Spring 应用的初始搭建以及开发过程。Spring Boot 使用了大量的注解来实现其功能,下面列出了一些在 Spring Boot 开发中常用的注解及其用途:
3-1、组件扫描与自动装配
3-1-1、@SpringBootApplication:这是一个组合注解,包含了 @SpringBootConfiguration, @EnableAutoConfiguration, @ComponentScan。通常用于启动类上,标识这是一个 Spring Boot 应用
@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
3-1-2、@SpringBootConfiguration:表示这是一个 Spring 配置类,类似于 @Configuration
@SpringBootConfiguration
public class AppConfig {
    // 配置类中的@Bean方法
}
3-1-3、@ComponentScan:用于扫描带有 @Component 或其派生注解(如 @Service, @Repository, @Controller)的类
@SpringBootApplication(scanBasePackages = {"com.example.package"})
public class Application {
    // ...
}
3-1-4、@EnableAutoConfiguration:启用自动配置,让 Spring Boot 根据类路径上的 jar 包自动配置 Bean。
@SpringBootApplication(scanBasePackages = {"com.example.package"})
public class Application {
    // ...
}
3-1-5、@Autowired:自动装配 Bean。
@Service
public class ServiceImpl {
    @Autowired
    private Repository repository;
}
3-1-6、@Qualifier:与 @Autowired 结合使用,精确指定注入哪个 Bean。
@Autowired
@Qualifier("myBean")
private MyBean myBean;
3-2、控制器与 RESTful API
3-2-1、@Controller:标记一个类作为控制器类,处理 HTTP 请求。
@Controller
public class MyController {
    @GetMapping("/hello")
    public String hello() {
        return "Hello World!";
    }
}
3-2-2、@RestController:组合了 @Controller@ResponseBody,用于直接返回 JSON 数据。
@RestController
public class MyRestController {
    @GetMapping("/api/hello")
    public String hello() {
        return "Hello World!";
    }
}
3-2-3、@RequestMapping:映射请求到方法上。
@Controller
public class MyController {
    @RequestMapping(value = "/hello", method = RequestMethod.GET)
    public String hello() {
        return "Hello World!";
    }
}
3-2-4、@GetMapping, @PostMapping, @PutMapping, @DeleteMapping:更具体的请求映射注解。
@RestController
public class MyRestController {
    @GetMapping("/api/hello")
    public String getHello() {
        return "GET Hello World!";
    }

    @PostMapping("/api/hello")
    public String postHello() {
        return "POST Hello World!";
    }
}
3-2-5、@PathVariable:获取 URL 路径中的变量。
@GetMapping("/users/{id}")
public String getUser(@PathVariable String id) {
    return "User ID is " + id;
}
3-2-6、@RequestParam:获取请求参数。
@GetMapping("/users")
public String getUsers(@RequestParam String name) {
    return "User Name is " + name;
}
3-2-7、@RequestBody:接收请求体中的数据。
@PostMapping("/users")
public String createUser(@RequestBody User user) {
    return "Created User with ID " + user.getId();
}
3-2-8、@ResponseBody:将方法的返回值直接写入 HTTP 响应体。
@GetMapping("/hello")
@ResponseBody
public String hello() {
    return "Hello World!";
}
3-3、数据访问层
3-3-1、@Repository:标记一个类作为 DAO 层。
@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    User findByUsername(String username);
}
3-3-2、@Transactional:用于方法或类,声明事务边界。
@Service
public class UserService {
    @Transactional
    public void createUser(User user) {
        // 创建用户的逻辑
    }
}

标签:常用,Java,String,hello,public,return,注解,class
From: https://www.cnblogs.com/qingtianyu2015/p/18424915

相关文章

  • 如何使用 Javascript 确定二叉树是否相同
    介绍这里相同意味着结构和值都处于相同的位置。为了实现这一点,我们需要使用dfs算法,这样它也会检查深度。使用bfs算法无法实现这一点。所以这里我使用有序遍历来得到结果classNode{constructor(data){this.left=null;this.right=null;t......
  • Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十九(用户中
    (4)创建mapper路径(5)编写配置文件server:port:8088spring:application:name:user-servicedatasource:url:jdbc:mysql://127.0.0.1:3306/yun6username:rootpassword:rootdriver-class-name:com.mysql.jdbc.Drivereureka:client:service-url:defaultZone......
  • 基于小程序/安卓的调查问卷管理系统uniapp/JAVA.VUE【数据库设计、论文、毕设源码、开
      博主介绍:......
  • 【最新原创毕设】基于SpringBoot的乐山市景区旅游攻略网+49117(免费领源码)可做计算机毕
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 乐山市景区旅游攻略网站系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3......
  • 最新毕设-Node.js-游戏网站-031726(免费领项目)可做计算机毕业设计JAVA、PHP、爬虫、APP
    游戏网站的设计摘 要基于网络游戏的蓬勃发展,游戏网站发挥着吸引玩家和提高玩家之间的互动性的重要作用,因而,建设了一个以游戏为中心的游戏官网。 该游戏提供了一个大型的玩家交流互动平台,包括用户管理、游戏社区、游戏信息、分类信息、游戏资讯、论坛分类列表、新闻分类列......
  • 在 C# 和 JavaScript 之间选择进行网页抓取
    简单了解C#和JavaScript网页抓取的区别C#作为编译型语言,提供了丰富的库和框架,如HtmlAgilityPack、HttpClient等,方便实现复杂的网页爬取逻辑,并且代码简洁高效,具有较强的调试和错误处理能力能力。同时C#具有良好的跨平台支持,适用于多种操作系统。不过C#的学习曲线可能比较陡峭,需要一......
  • 在 JavaScript 中使用最小和最大堆管理流数据:数字运动员健康技术视角
    数据管理在健康技术中至关重要。无论是跟踪运动员的表现指标还是监控运动员的恢复时间,有效地组织数据都可以对洞察的获取方式产生重大影响。在这种情况下管理数据的一种强大工具是堆,特别是最小堆和最大堆。在这篇文章中,我们将使用与运动员数据管理相关的实际示例,探索如何在javasc......
  • 在 JavaScript 中掌握日期
    今天的重点是理解和操作javascript中的日期。日期是许多应用程序的一个基本方面,javascript提供了一组强大的工具来处理它们。1.理解javascript日期javascript日期是从1970年1月1日开始计算的,这被称为unix纪元。自那时起,它们通常以毫秒表示。以下是创建和查看......
  • note.js与vue.js常用基本命令
    Note.js基本命令1、安装Node.js包npminstall<package-name>2、全局安装包npminstall-g<package-name>3、查看已安装的包npmlist4、初始化项目并创建package.json文件npminit5、更新包到最新版本npmupdate<package-name>6、卸载包npmuninstall<pack......
  • 初学者 JavaScript
    JavaScript是一种高级编程语言,广泛应用于Web开发。它由BrendanEich于1995年创建,现已成为世界上最流行的编程语言之一。JavaScript主要用于前端Web开发,用于创建交互式用户界面和动态网页。它还可以在Node.js的帮助下用于后端Web开发,Node.js是一个运行时环境,允许开......