1、@Controller 处理http请求的控制器
2、@RestController
Spring4之后新加入的注解,原来返回json需要@ResponseBody和@Controller配合。
即@RestController是@ResponseBody和@Controller的组合注解。
3、@RequestMapping 配置url映射
@RequestMapping此注解即可以作用在控制器的某个方法上,也可以作用在此控制器类上;
@RequestMapping中的method参数有很多中选择,一般使用get/post.
在类级别上添加@RequestMapping注解时,此时路径就是该控制器寻找对应网页的父路径。处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。
例如:
@RequestMapping(value="/queryById") 普通请求
@RequestMapping(value="/hello",method= RequestMethod.GET) get请求
@RequestMapping(value="/hello",method= RequestMethod.POST) post请求
还有一些简化了的:
@GetMapping 等同于 @RequestMapping(method = RequestMethod.GET)
@PostMapping 等同于 @RequestMapping(method = RequestMethod.POST)
@PutMapping 等同于 @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping 等同于 @RequestMapping(method = RequestMethod.DELETE)
@PatchMapping 等同于 @RequestMapping(method = RequestMethod.PATCH)
4、一些其他会用到的注解:
@Component,@Controller,@Service,@Repository等注解标记的组件
- @Component 作用: 基本注解,标识了一个受Spring容器管理的组件 ,泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
(把普通pojo实例化到spring容器中,相当于配置文件中的) - @Respository 作用:标识的是持久层组件
- @Service 作用: 标识的是业务层(服务层)组件 @Controller 作用:标识的是表述层组件
- @Autowired
作用:它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作 - @Autoware默认按类型匹配注入Bean
required属性:如果希望Spring即使找不到匹配的Bean完成注入也不要抛出异常,那么可以使用@Autoware(required=false)进行标注 - @RequestParam、@PathVariable
作用:两者的作用都是将request里的参数的值绑定到contorl里的方法参数里的,区别在于,url不同。这两个的不同之前有专门的一篇介绍。 - @ResponseBody 作用:该注解用于将Controller的方法返回的对象,根据HTTP RequestHeader的Accept的内容, 通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用。配置返回JSON和XML数据 - @scope
作用:用来配置 spring bean 的作用域,它标识 bean 的作用域。简单点说就是用来指定bean的作用域。
scope用来声明IOC容器中的对象应该处的限定场景或者说该对象的存活空间, 即在IOC容器在对象进入相应的scope之前,生成并装配这些对象,在该对象不再处于这些scope的限定之后,容器通常会销毁这些对象。 - @Required
作用:Spring 配置文件中 dependency-check 依赖检查的灵活性不够,并不能满足我们所有的需求Spring还提供一种更加灵活的检查方式
注意:@required只能注设置到setter方法上面 - @Qualifier
作用:我们知道,@Autowired默认是按照类型装配注入的,如果想按照名称来转配注入,则需要结合@Qualifier一起使用
@Autowired通过此注解完成从spring配置文件中 查找满足studentDao类型的bean @Qualifier(“studentDao”)则按照名称经行来查找转配的
后续继续补充------------