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容器通过匹配数据类型来自动装配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 = "cn.javatiku")  
@Configuration  
public class ScanComponent  
{  
// ...  
}  

@Bean:是方法级别的注解。它是 XML <bean> 标签的替代品。它告诉方法生成一个由 Spring 容器管理的 bean。

例子

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

Spring框架构造型注解

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

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

package cn.javatiku;  
@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:用于映射网络请求。它有许多可选元素,如Consumers、 header、 method、 name、 params、 path、 Producevalue。我们将它与类和方法一起使用。

例子

@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 框架将返回的对象序列化为 JSON 和 XML 格式。
  • @PathVariable:用于从 URI 中提取值。它最适合 URL 包含路径变量的 RESTful Web 服务。我们可以在一个方法中定义多个@PathVariable。
  • @RequestParam:用于从URL中提取查询参数。它也称为查询参数。它最适合Web应用程序。如果 URL 中不存在查询参数,它可以指定默认值。
  • @RequestHeader:用于获取HTTP请求头的详细信息。我们使用这个注解作为方法参数。注释的可选元素是名称、必需、值、默认值。对于标题中的每个细节,我们应该指定单独的注释。我们可以在一个方法中多次使用它
  • @RestController:可以认为是@Controller@ResponseBody注解的组合@RestController 注释本身使用 @ResponseBody 注释进行注释。它消除了使用 @ResponseBody 注释每个方法的需要。
  • @RequestAttribute:它将方法参数绑定到请求属性。它提供了从控制器方法对请求属性的便捷访问。借助@RequestAttribute注释,我们可以访问服务器端填充的对象。

标签: spring, Spring教程, Spring语言学习, Spring框架, Spring框架教程, Spring框架高级教程, spring boot, spring boot入门教程, spring boot学习教程, spring boot下载, spring boot框架入门, spring boot面试题, spring boot笔试题, spring boot学习指南, spring boot技术