个性化阅读
专注于IT技术分析

Spring Boot注解介绍和用法详解

本文概述

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

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

核心Spring框架注解

@Required:它适用于bean setter方法。它指示必须在配置时使用必需的属性填充带注解的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.srcmini")
@Configuration
public class ScanComponent
{
// ...
}

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

例子

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

Spring Framework构造型注解

@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.srcmini;
@Service
public class TestService
{
public void service1()
{
//business code
}
}

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

package com.srcmini;
@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:用于映射Web请求。它具有许多可选元素, 例如消耗, 标头, 方法, 名称, 参数, 路径, 产生和值。我们将其与类以及方法一起使用。

例子

@Controller
public class BooksController 
{
@RequestMapping("/computer-science/books")
public String getAllBooks(Model model)
{
//application code
return "bookList";
}
  • @GetMapping:它将HTTP GET请求映射到特定的处理程序方法。它用于创建获取的Web服务端点, 而不是使用:@RequestMapping(method = RequestMethod.GET)
  • @PostMapping:它将HTTP POST请求映射到特定的处理程序方法。它用于创建创建的Web服务端点, 而不是使用它:@RequestMapping(method = RequestMethod.POST)
  • @PutMapping:它将HTTP PUT请求映射到特定的处理程序方法。它用于创建可创建或更新的Web服务终结点, 而不是使用以下方法:@RequestMapping(method = RequestMethod.PUT)
  • @DeleteMapping:它将HTTP DELETE请求映射到特定的处理程序方法。它用于创建删除资源的Web服务端点。使用它而不是使用:@RequestMapping(method = RequestMethod.DELETE)
  • @PatchMapping:它将HTTP PATCH请求映射到特定的处理程序方法。使用它而不是使用:@RequestMapping(method = RequestMethod.PATCH)
  • @RequestBody:用于将HTTP请求与方法参数中的对象绑定。在内部, 它使用HTTP MessageConverters转换请求的主体。当我们使用@RequestBody注解方法参数时, Spring框架会将传入的HTTP请求主体绑定到该参数。
  • @ResponseBody:它将方法返回值绑定到响应主体。它告诉Spring Boot Framework将一个返回的对象序列化为JSON和XML格式。
  • @PathVariable:用于从URI中提取值。它最适合RESTful Web服务, 其中URL包含路径变量。我们可以在一个方法中定义多个@PathVariable。
  • @RequestParam:用于从URL中提取查询参数。也称为查询参数。它最适合Web应用程序。如果URL中不存在查询参数, 则可以指定默认值。
  • @RequestHeader:用于获取有关HTTP请求标头的详细信息。我们将此注解用作方法参数。注解的可选元素是名称, 必需, 值, defaultValue。对于标题中的每个细节, 我们应该指定单独的注解。我们可以在一个方法中多次使用它
  • @RestController:可以将其视为@Controller和@ResponseBody批注的组合。 @RestController注解本身使用@ResponseBody注解进行注解。它消除了使用@ResponseBody注解每个方法的需要。
  • @RequestAttribute:它将方法参数绑定到请求属性。它提供了从控制器方法方便地访问请求属性的方法。借助@RequestAttribute批注, 我们可以访问服务器端填充的对象。

注意:我们已在RESTful Web服务教程中将上述所有注解与实际示例结合使用。


赞(0) 打赏
未经允许不得转载:srcmini » Spring Boot注解介绍和用法详解
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏