零基础入门学习——Spring Boot注解(一)

下面是针对“零基础入门学习——SpringBoot注解(一)”的完整攻略讲解。

简介

本文主要介绍SpringBoot注解的使用方法,包含基本注解的使用和自定义注解的使用。如果你还没有学习过SpringBoot框架,可以先阅读“零基础入门学习——SpringBoot(一)”和“零基础入门学习——SpringBoot(二)”,前者介绍了SpringBoot的基础知识,后者介绍了如何配置SpringBoot项目。

基本注解

@SpringBootApplication

@SpringBootApplication是SpringBoot应用程序的主注解,常用于应用程序的主类上。它同时包含了三个注解:

  1. @EnableAutoConfiguration:自动装配SpringBoot应用程序所需的Bean。
  2. @Configuration:标识该类为配置类。
  3. @ComponentScan:自动扫描指定的包和类。

示例代码:

@SpringBootApplication
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
  }
}

@RestController

@RestController用于创建RESTful风格的Web服务。它等于@Controller@ResponseBody的组合。@Controller用于标识Controller类,@ResponseBody表示Controller方法的返回值直接作为响应体返回。

@RestController
public class HelloWorldController {

  @GetMapping("/")
  public String hello() {
    return "Hello, World!";
  }
}

@GetMapping

@GetMapping用于处理HTTP GET请求,它是一个组合注解。

@GetMapping("/hello")
public String hello() {
  return "Hello, World!";
}

自定义注解

除了使用SpringBoot提供的注解,我们还可以自定义注解来简化编程过程。自定义注解一般包含元注解和注解属性两部分。

元注解指的是修饰注解的注解,Java中提供了四个元注解:

  1. @Retention:表示注解的生命周期。有三个取值:RetentionPolicy.SOURCE表示注解在源代码中可用,但不会包含在编译好的class文件中;RetentionPolicy.CLASS表示注解会包含在编译好的class文件中,但不会加载到内存中;RetentionPolicy.RUNTIME表示注解可以在运行时通过反射获取到。
  2. @Target:表示注解可以修饰的目标。有多个取值,如ElementType.TYPE表示可以修饰类、接口、枚举等;ElementType.FIELD表示可以修饰属性等。
  3. @Documented:表示注解是否包含在JavaDoc中。
  4. @Inherited:表示注解是否可以被子类继承。

注解属性指的是在注解中定义的属性。注解属性可以包含默认值和限制条件。

下面是一个自定义注解示例:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface Service {
  String name() default "defaultService";
}

在上面的例子中,@Service是一个注解,它定义了一个name属性,且包含元注解。

我们可以在代码中使用自定义注解:

@Service(name = "myService")
public class MyService {
  //...
}

综合示例

下面是一个综合示例,它使用了基本注解和自定义注解:

@SpringBootApplication
@Service
public class Application {
  public static void main(String[] args) {
    ApplicationContext context = SpringApplication.run(Application.class, args);
    MyService myService = context.getBean(MyService.class);
    myService.sayHello();
  }
}
public interface IService {
  void sayHello();
}
@Service
public class MyService implements IService {

  private final String name;

  public MyService(@Value("${app.service.name}") String name) {
    this.name = name;
  }

  @Override
  public void sayHello() {
    System.out.println("Hello, " + name + "!");
  }
}

在上面的例子中,@SpringBootApplication@Service分别标识了Application类和MyService类。在MyService类中,我们使用了@Value注解来注入属性值,而@Override注解表示该方法为重写父类方法。

总结

本文介绍了SpringBoot注解的基本知识和自定义注解的使用方法,包含示例代码,通过学习可以对注解有更深入的理解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:零基础入门学习——Spring Boot注解(一) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • java如何使用Lombok更优雅地编码

    Java开发中,有很多操作都是重复而无聊的,例如get/set方法的编写。通过使用Lombok,可以在编码时更加优雅,省去这些重复的部分。下面是Java如何使用Lombok更优雅地编码的完整攻略: 1. 安装Lombok 首先在Maven中,添加Lombok的依赖: <dependency> <groupId>org.projectl…

    Java 2023年5月20日
    00
  • jsp网页计数器实现示例

    下面是“JSP网页计数器实现示例”的完整攻略,该攻略包括以下步骤: 1. 在JSP页面中添加计数器代码 要在JSP页面中添加计数器,需要先在页面的头部导入计数器的Java类,然后在页面中使用JSP脚本将计数器的初始化以及计数器在页面上的输出实现。 示例代码: <%@ page import="com.example.Counter"…

    Java 2023年6月15日
    00
  • Java 网络编程 —— 创建多线程服务器

    一个典型的单线程服务器示例如下: while (true) { Socket socket = null; try { // 接收客户连接 socket = serverSocket.accept(); // 从socket中获得输入流与输出流,与客户通信 … } catch(IOException e) { e.printStackTrace() } …

    Java 2023年5月3日
    00
  • Cookie在Java中的使用

    下面是详细讲解 Cookie 在 Java 中使用的攻略: 一、什么是 Cookie Cookie 是存储在用户计算机上的小型文本文件,用于存储 Web 服务器如何处理用户的操作的信息。它可以帮助网站在用户访问过程中存储一些用户信息,例如用户的用户名、购物车信息、上次登录时间等等。Cookie 可以在服务器和客户端之间交换,以使得用户在多个 Web 页面之间…

    Java 2023年6月15日
    00
  • Android发送GET与POST请求的DEMO详解

    下面我将为你详细讲解“Android发送GET与POST请求的DEMO详解”这个主题,包括以下几个方面的内容: 什么是HTTP请求 Android中发送HTTP请求的方式 完整示例:Android发送GET请求 完整示例:Android发送POST请求 什么是HTTP请求 HTTP(HyperText Transfer Protocol)是一种用于传输数据的…

    Java 2023年6月15日
    00
  • Java Properties作为集合三个方法详解

    当我们使用Java进行编程时,经常需要使用配置文件来存储一些关键的配置信息,于是Java提供了一个名为Properties的类来处理这个问题。Properties是一个Map集合,其中的key和value都必须是字符串类型。下面将详细讲解Java Properties作为集合的三个常用方法:getProperty、setProperty和load。 getP…

    Java 2023年6月15日
    00
  • Java常用类String的面试题汇总(java面试题)

    下面是整理Java常用类String的面试题汇总的详细攻略。 1. String类的概述 String类是Java中常用的类之一,是由JDK提供的一个不可变的final类,用于存储字符串数据,可以进行字符串的操作和处理。 2. 常见的String类面试题 2.1 如何比较两个字符串是否相等? 首先要了解的是,Java中有两种比较方式,一种是基本类型的比较(=…

    Java 2023年5月20日
    00
  • Spring FreeMarker整合Struts2过程详解

    下面是“Spring FreeMarker整合Struts2过程详解”的完整攻略: 1. 初步准备 在项目中引入Spring和Struts2框架; 引入FreeMarker模板引擎。 2. 添加Spring配置文件 在Spring配置文件中,需要添加以下内容: <!– 引入FreeMarker视图解析器 –> <bean id=&quo…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部