Spring Boot注释是元数据的一种形式,它提供有关程序的数据。 换句话说,注释用于提供有关程序的补充信息。 它不是开发的应用程序的一部分。 它对其注释的代码的操作没有直接影响。 它不会更改已编译程序的操作。
在本节中,我们来了解一些重要的Spring Boot注释,在本教程的后面部分中使用它们。
1.核心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.xntutor")
@Configuration
public class ScanComponent
{
// ...
}
@Bean:这是方法级别的注释。 它是XML <bean>
标记的替代方法。 它告诉方法产生一个由Spring Container管理的bean。
示例
@Bean
public BeanExample beanExample()
{
return new BeanExample ();
}
2.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.xntutor;
@Service
public class TestService
{
public void service1()
{
//business code
}
}
@Repository:这是一个类级别的注释。存储库是直接访问数据库的DAO(数据访问对象)。 存储库执行与数据库有关的所有操作。
package com.xntutor;
@Repository
public class TestRepository
{
public void delete()
{
//persistence code
}
}
3.Spring Boot注释
@EnableAutoConfiguration
:它自动配置类路径中存在的bean,并将其配置为运行方法。 在Spring Boot 1.2.0发行版中减少了使用此注释的方法,因为开发人员提供了注释的替代方法,即@SpringBootApplication
。@SpringBootApplication
:它是三个注释@EnableAutoConfiguration
,@ComponentScan
和@Configuration
的组合。
4.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请求标头的详细信息。将此注释用作方法参数。注释的可选元素是:
name
,required
,value
,defaultValue
。对于标题中的每个细节,应该指定单独的注释。可以在一个方法中多次使用它@RestController:可以将其视为
@Controller
和@ResponseBody
批注的组合。@RestController
注释本身使用@ResponseBody
注释进行注释。它消除了使用@ResponseBody
注释每个方法的需要。@RequestAttribute:它将方法参数绑定到请求属性。它提供了从控制器方法方便地访问请求属性的方法。借助
@RequestAttribute
批注,我们可以访问服务器端填充的对象。