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系列注解