1.@Controller
使用 @Controller 注解的类将会被 Spring MVC 自动扫描,并注册为一个控制器。
2.RestController
@RestController注解相当于@ResponseBody+@Controller的组合,RestController将方法返回的对象直接在浏览器上展示成json格式。
3.@service
@Service注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中。在调用该service的时候只需要将该类注入接口。
4.@Reponsitory
@Repository与@Service和@Controller都可以理解为@Component注解的扩展。他们的作用都是在类上实例化bean,并把当前类对象的实现类交给spring容器进行管理。
5.@Component
它提供了自动扫描和实例化bean的功能。
6.@Autowired
由Spring的依赖注入工具(BeanPostProcessor、BeanFactoryPostProcessor)自动注入。
7.@Resource
依赖注入工具,类似@Autowired,@AutoWried按by type自动注入,而@Resource默认按byName自动注入。
spring将name属性解析为bean的名字,而type属性则被解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,如果使用type属性则使用byType的自动注入策略。如果都没有指定,则通过反射机制使用byName自动注入策略。
1. 既不指定name属性,也不指定type属性,则自动按byName方式进行查找。如果没有找到符合的bean,则回退为一个原始类型进行查找,如果找到就注入。
2. 只是指定了@Resource注解的name,则按name后的名字去bean元素里查找有与之相等的name属性的bean。
3. 只指定@Resource注解的type属性,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常。
4. 既指定了@Resource的name属性又指定了type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常。
8.@Value
将配置文件的属性读出来,有@Value(“${}”)和@Value(“#{}”)两种方式
SpEL的写法:${表达式},当然也可以类似mybatis中的 #{表达式} 的写法。
9.@Data
@Data注解可以代替 get(), set(), toString() 等方法使用。
10.RequestMapping
@RequestMapping表示共享映射,如果没有指定请求方式,将接收GET、POST、HEAD、OPTIONS、PUT、PATCH、DELETE、TRACE、CONNECT所有的HTTP请求方式。@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping 都是HTTP方法特有的快捷方式@RequestMapping的变体,分别对应具体的HTTP请求方式的映射注解。
11.@RequestParam
@RequestParam 注解是Spring框架中的一个注解,用于将HTTP请求参数绑定到控制器方法的参数上。通过 @RequestParam 注解,可以方便地获取客户端传递的请求参数。
深入解析 Java @RequestParam 注解:处理请求参数的高效利用-阿里云开发者社区 (aliyun.com)
12. PathVariable
将 URL 中占位符参数绑定到控制器处理方法的入参中:URL 中的 {xxx} 占位符可以通过@PathVariable(“xxx”) 绑定到操作方法的入参中。
13.@ResponseBody
将返回值放在
response
体内。返回的是数据而不是页面。在异步请求返回json数据时使用。
14.@RequestBody
允许request的参数在request体中,而不是在直接链接在地址的后面。此注解放置在参数前。比如:直接以String接收前端传过来的json数据:
/***
* 直接以String接收前端传过来的json数据
*
* @Param str:json格式的字符串
* @return: json格式的字符串
**/
@PostMapping("/test")
@ResponseBody
public String test(@RequestBody String str){
return str;
}
15.@SpringBootApplication 启动
SpringBoot的核心注解,主要目的是开启自动配置。它也是一个组合注解,主要组合了@Configuration,@EnableAutoConfiguration(核心)和@ComponentScan。可以通过@SpringBootApplication(exclude={想要关闭的自动配置的类名.class})来关闭特定的自动配置,其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文。
16.@EnableAutoConfiguration 自动配置
自动载入应用程序所需的所有Bean——这依赖于Spring Boot在类路径中的查找。该注解组合了@Import注解,@Import注解导入了EnableAutoCofigurationImportSelector类,它使用SpringFactoriesLoader.loaderFactoryNames方法来扫描具有META-INF/spring.factories文件的jar包。
17.@Configuration 配置文件
等同于
spring
的XML
配置文件;使用Java
代码可以检查类型安全。
18.@ComponentScan 自动扫描
@Component注解及其衍生注解@RestController、@Controller、@Service和@Repository都是组件注册注解。@ComponentScan注解主要是从约定的扫描路径中,识别标注了组件注册注解的类,并且把这些类自动注册到spring IoC容器中,这些类就是我们通常所言的bean。IoC容器是Spring的特色之一,可以使用它管理bean。当然,@Configration注解修饰的类也会被托管给IoC容器。
Spring Boot注解之@ComponentScan用法和实现原理 - 楼兰胡杨 - 博客园 (cnblogs.com)
19.@SpringBootTest
@SpringBootTest注解是SpringBoot Since:1.4.0 版本开始引入的一个用于测试的注解。
20.@Test
将普通类修饰成测试类。