spring boot 注解

Posted 不受人言驱使,不失己言风范。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring boot 注解相关的知识,希望对你有一定的参考价值。

@RequestMapping 提供路由信息。

@Controller 用于定义控制器类,在spring 项目中由控制器负责将用户发来的URL请求转发到对应的服务接口(service层),一般这个注解在类中,通常方法需要配合注解@RequestMapping。

@ResponseBody 表示该方法的返回结果直接写入HTTP response body中。

一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上
@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如
异步获取json数据,加上@responsebody后,会直接返回json数据。

@RestController    告诉Spring以字符串的形式渲染结果,并直接返回给调用者。

是@Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中,是REST风格的控制器。

注意:RestController 和 RequestMapping 注解是Spring MVC注解,不是spring boot 特定部分。

@EnableAutoConfiguration 这个注解告诉Spring Boot根据添加的jar依赖猜测你想如何配置Spring。

由于 spring-boot-starter-web 添加了Tomcat和Spring MVC,所以auto-configuration将假定你正在开发一个web应用并相应地对Spring进行设置。

Starter POMs和Auto-Configuration:设计auto-configuration的目的是更好的使用"Starter POMs",但这两个概念没有直接的联系。你可以自由地挑选starter POMs以外的jar依赖,并且Spring Boot将仍旧尽最大努力去自动配置你的应用。

如果发现应用了你不想要的特定自动配置类,你可以使用 @EnableAutoConfiguration 注解的排除属性来禁用它们。

@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})

@AutoWired 把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配构造的工作。

当加上(required=false)时,就算找不到bean也不报错。

@Component 泛指组件。当组件不好归类的时候,我们可以使用这个注解进行标注。一般公共的方法我会用上这个注解。

@RequestParam  用在方法的参数前面。

@RequestParam String a =request.getParameter("a");

@PathVariable 路径变量。

RequestMapping("user/get/mac/{macAddress}") public String getByMacAddress(@PathVariable String macAddress){ //do something;}

@value 注解来读取application.properties里面的配置

1 # face++ key 
2 face_api_key = R9Z3Vxc7ZcxfewgVrjOyrvu1d-qR**** 
3 face_api_secret =D9WUQGCYLvOCIdsbX35uTH********
1 @Value("${face_api_key}")     
2 private String API_KEY;       
3 @Value("${face_api_secret}")    
4 private String API_SECRET;

注意:使用這個注解的时候 使用@Value的类如果被其他类作为对象引用,必须要使用注入的方式,而不能new。这个很重要,我就是被这个坑了

@ExceptionHandler(Exception.class): 用在方法上面表示遇到这个异常就执行以下方法。

@ControllerAdvice  包含@Component。可以被扫描到。 统一处理异常。

@Profiles  Spring Profiles提供了一种隔离应用程序配置的方式,并让这些配置只能在特定的环境下生效。

任何@Component或@Configuration都能被@Profile标记,从而限制加载它的时机。

@Configuration 
@Profile("production") 
public class ProductionConfiguration {
 // ...
}

 @ImportResource 注解加载xml配置文件。

@SpringBootApplication  该注解等价于以默认属性使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 。申明让spring boot自动给程序进行必要的配置。

很多Spring Boot开发者总是使用 @Configuration , @EnableAutoConfiguration 和 @ComponentScan 注解他们的main类。由于这些注解被如此频繁地一块使用(特别是你遵循以上最佳实践时),Spring Boot提供一个方便的 @SpringBootApplication 选择。 其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。

@Configuration 等同于spring的XML配置文件;使用Java代码可以检查类型安全。  

@ComponentScan 组件扫描,可自动发现和装配一些Bean。

@Service 一般用于修饰service层的组件

@Repository 使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。

@Entity:@Table(name=”“):表明这是一个实体类。一般用于jpa这两个注解一般一块使用,但是如果表名和实体类名相同的话,@Table可以省略

@Column:如果字段名与列名相同,则可以省略。

@Id:表示该属性为主键

 



以上是关于spring boot 注解的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot:thymeleaf 没有正确渲染片段

Spring Boot 功能代码:基于注解+Spring AOP 记录业务数据修改前后记录。

Spring Boot框架中的Conditional系列注解

Spring Boot框架中的@Conditional系列注解

详解spring boot mybatis全注解化

Spring boot注解分析