1.@SpringBootApplication:
蕴含@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan通常用在主启动类上,目标是开启spring主动配置。
其中:
@SpringBootConfiguration:继承自@Configuration,二者性能也统一,标注以后类是配置类,并会将以后类内申明的一个或多个以@Bean注解标记的办法的实例纳入到spring容器中,并且实例名就是办法名。
@EnableAutoConfiguration:借助@Import的反对,收集和注册特定场景相干的bean定义。
@ComponentScan:是主动扫描并加载符合条件的组件(比方@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。@ComponentScan通知Spring 哪个packages 的用注解标识的类 会被spring主动扫描并且装入bean容器。
例如,如果你有个类用@Controller注解标识了,那么,如果不加上@ComponentScan,主动扫描该controller,那么该Controller就不会被spring扫描到,更不会装入spring容器中,因而你配置的这个Controller也没有意义。
2.@Controller和@RestController
@RestController:
用于标注管制层组件(如struts中的action),蕴含@Controller和@ResponseBody。
@Controller:
用于标注是管制层组件,须要返回页面时请用@Controller而不是@RestController。
3.@Service:
用于标注业务层组件。
4.@Component:
泛指组件,当组件不好归类的时候,咱们能够应用这个注解进行标注。
5.@ResponseBody:
示意该办法的返回后果间接写入HTTP response body中,个别在异步获取数据时应用,在应用@RequestMapping后,返回值通常解析为跳转门路,加上@responsebody后返回后果不会被解析为跳转门路,而是间接写入HTTP response body中;比方异步获取json数据,加上@responsebody后,会间接返回json数据。
6.@RequestBody:
参数前加上这个注解之后,认为该参数必填。示意承受json字符串转为对象、List等。
7.@Bean:
相当于XML中的,放在办法的下面,而不是类,意思是产生一个bean,并交给spring治理;
8.@AutoWired:
byType形式。把配置好的Bean拿来用,实现属性、办法的组装,它能够对类成员变量、办法及构造函数进行标注,实现主动拆卸的工作。当加上(required=false)时,就算找不到bean也不报错。
@Qualifier:
当有多个同一类型的Bean时,能够用@Qualifier(“name”)来指定。与@Autowired配合应用;
@Resource(name=”name”,type=”type”):
没有括号内内容的话,默认byName。与@Autowired干相似的事;
9.@RequestMapping:
RequestMapping是一个用来解决申请地址映射的注解,可用于类或办法上。用于类上,示意类中的所有响应申请的办法都是以该地址作为父门路。
该注解有六个属性:
params:指定request中必须蕴含某些参数值是,才让该办法解决。
headers:指定request中必须蕴含某些指定的header值,能力让该办法解决申请。
value:指定申请的理论地址,指定的地址能够是URI Template 模式
method:指定申请的method类型, GET、POST、PUT、DELETE等
consumes:指定解决申请的提交内容类型(Content-Type),如application/json,text/html;
produces:指定返回的内容类型,仅当request申请头中的(Accept)类型中蕴含该指定类型才返回。
@GetMapping、@PostMapping等:
相当于@RequestMapping(value=”/”,method=RequestMethod.GetPostPutDelete等) 。是个组合注解。
10.@RequestParam:
用在办法的参数后面。相当于 request.getParameter()。
11.@RequestParam 和 @PathVariable
传统来讲,必定是两种形式为主,一种是 GET ,一种是 POST ,这两种形式都是向一个 URL 传参 GET 形式体现到了地址栏里,POST 形式将内容放在了 body 里。
@RequestParam和@PathVariable 注解是用于从 request 中接管申请的,两个都能够接管参数,关键点不同的是@RequestParam是从 request 外面拿取值,而@PathVariable是从一个URI模板外面来填充