Spring Boot - 注释

Spring Boot - 注释 首页 / Spring Boot入门教程 / Spring Boot - 注释

Spring Boot注释是元数据的一种形式,它提供有关程序的数据。换句话说,注释用于提供有关程序的补充信息。它不是无涯教程开发的应用程序的一部分。它对其注释的代码的操作没有直接影响。它不会更改已编译程序的操作。

在本节中,将讨论一些重要的 Spring Boot注释,将在本教程的后面部分使用它们。

框架注释

@Required - 它适用于 bean 设置方法。它指示必须在配置时使用必需的属性填充带注释的Bean,否则它将引发异常 BeanInitilizationException 

public class Machine 
{
  private Integer cost;
  @Required
  public void setCost(Integer cost) 
  {
    this.cost = cost;
  }
  public Integer getCost() 
  {
    return cost;
  }   
}

@Autowired  -  Spring通过提供@Autowired注释来提供基于注释的自动装配。它用于自动连接setter方法,实例变量和构造函数上的spring bean。当使用@Autowired注释时,spring集合通过匹配data-type自动连接bean。

@Component
public class Customer
{
  private Person person;
  @Autowired
  public Customer(Person person) 
  { 
    this.person=person;
  }
}

@Configuration - 它是一个类级别的注释。由Spring集合使用@Configuration注释的类用作Bean定义的源。

@Configuration
public class Vehicle
{
  @BeanVehicle engine()
  {
    return new Vehicle();
  }
}

@ComponentScan - 当要扫描软件包中的bean时使用。它与注释@Configuration一起使用。无涯教程还可以指定要扫描Spring组件的基本软件包。

@ComponentScan(basePackages = "com.learnfk")
@Configuration
public class ScanComponent
{
// ...
}

@Bean  -  它是方法级别的注释。它是XML <bean>标记的替代方法。它告诉方法产生一个由Spring Container管理的bean。

@Bean
public BeanExample beanExample() 
{
  return new BeanExample ();
}

构造型注释

@Component  -  它是一个类级别的注释。它用于将Java类标记为Bean。在类路径中发现了一个用 @Component 注释的Java类。 Spring框架将其拾取并在应用程序上下文中将其配置为 Spring Bean

@Component
public class Student
{
.......
}

@Controller  -  @Controller是类级别的注释。它是 @Component 的一种特殊形式。它将一个类标记为Web请求处理程序。它通常用于提供网页。默认情况下,它返回一个字符串,该字符串指示要重定向的路由。它通常与 @RequestMapping 注释一起使用。

@Controller
@RequestMapping("books")
public class BooksController 
{
  @RequestMapping(value = "/{name}", method = RequestMethod.GET)
  public Employee getBooksByName() 
  {
    return booksTemplate;
  }
}

@Service  -  也用于类。它告诉Spring该类包含业务逻辑

package com.learnfk;
@Service
public class TestService
{
  public void service1()
  {
  //business code
  }
}

@Repository  -  这是一个类级注释。该存储库是直接访问数据库的 DAO (数据访问对象)。存储库执行与数据库有关的所有操作。

package com.learnfk;
@Repository	
public class TestRepository
{
  public void delete()
  {	
  //persistence code
  }
}

Spring Boot注释

  • @EnableAutoConfiguration   -  它会自动配置类路径中存在的bean,并将其配置为运行方法。在Spring Boot 1.2.0发行版中减少了使用此批注,因为开发人员提供了该批注的替代方法,即 @SpringBootApplication
  • @SpringBootApplication        -  它是三个注释 @EnableAutoConfiguration,@ComponentScan, @Configuration 的组合。

Spring MVC和REST批注

  • @RequestMapping   -  用于映射网络请求。它具有许多可选元素,例如consumes,header,method,name,params,path,producesvalue。将其与类以及方法一起使用。
@Controller
public class BooksController 
{
  @RequestMapping("/computer-science/books")
  public String getAllBooks(Model model)
  {
    return "bookList";
   }
}
  • @GetMapping              -  它将 HTTP GET 请求映射到特定的处理程序方法。替代 @RequestMapping(method = RequestMethod.GET)
  • @PostMapping            -  它将 HTTP POST 请求映射到特定的处理程序方法。替代 @RequestMapping(method = RequestMethod.POST)
  • @PutMapping              -  它将 HTTP PUT 请求映射到特定的处理程序方法。替代 @RequestMapping(method = RequestMethod.PUT)
  • @DeleteMapping        -  它将 HTTP DELETE 请求映射到特定处理程序方法。替代 @RequestMapping(method = RequestMethod.DELETE)
  • @PatchMapping         -  它将 HTTP PATCH 请求映射到特定的处理程序方法。替代 @RequestMapping(method = RequestMethod.PATCH)
  • @RequestBody           -  它用于绑定 HTTP请求与方法参数中的对象。用 @RequestBody注释方法将传入的HTTP请求主体绑定到该参数。
  • @ResponseBody        -  它将方法返回值绑定到响应主体。它告诉Spring Boot Framework将返回的对象序列化为JSON和XML格式。
  • @PathVariable           -  用于从URI中提取值。它最适合RESTful Web服务,其中URL包含路径变量。可以在一个方法中定义多个@PathVariable。
  • @RequestParam       -  用于从URL提取查询参数。也称为查询参数。它最适用于Web应用程序。如果URL中不存在查询参数,可以指定默认值。
  • @RequestHeader      -  用于获取有关HTTP请求标头的详细信息。
  • @RestController       -  可以将其视为 @Controller @ResponseBody annotations @RestController注释本身带有@ResponseBody注释。
  • @RequestAttribute  - 它将方法参数绑定到请求属性。它提供了从控制器方法方便地访问请求属性的方法。借助@RequestAttribute批注,无涯教程可以访问服务器端填充的对象。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

快速上手Kotlin开发 -〔张涛〕

玩转webpack -〔程柳锋〕

从0打造音视频直播系统 -〔李超〕

系统性能调优必知必会 -〔陶辉〕

Selenium自动化测试实战 -〔郭宏志〕

实用密码学 -〔范学雷〕

如何讲好一堂课 -〔薛雨〕

手把手带你写一个Web框架 -〔叶剑峰〕

给程序员的写作课 -〔高磊〕

好记忆不如烂笔头。留下您的足迹吧 :)