Springboot常用的注解以及@Controller/@RestController的区别

项目中的controller层使用@controller注解或@RestController注解

原来返回json需要@ResponseBody和@Controller配合。

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。

@ResponseBody 注解用于将返回对象(Employee或EmployeeList)变为响应的正文内容,将使用MappingJacksonHttpMessage Converter 将其映射到 Json 。


常用第四种MappingJacksonHttpMessage Converter 

@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法。通俗来说,被Controller标记的类就是一个控制器,这个类中的方法,就是相应的动作。

@Controller必须配合模版来使用。spring-boot 支持多种模版引擎包括: 
1,FreeMarker 
2,Groovy 
3,Thymeleaf (Spring 官网使用这个) 
4,Velocity 
5,JSP (貌似Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录)


只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。

@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。比如下图中,跳转到登录页面的路径就是http://127.0.0.1:8080/Hello

1.@RequestMapping仅作用在处理器方法上


2.@RequestMapping仅作用在类级别上(效果同上)

3.@RequestMapping作用在类级别和处理器方法上(跳转到登录页面的路径就是http://127.0.0.1:8080/先类上的/处理器上的(Hello)

从这两个方法所响应的url可以回过头来看这两句话:当控制器在类级别上添加@RequestMapping注解时,这个注解会应用到控制器的所有处理器方法上。处理器方法上的@RequestMapping注解会对类级别上的@RequestMapping的声明进行补充。

@RequestMapping中的method参数有很多中选择,一般使用get/post.




@PathVaribale 获取url中的数据

@RequestParam 获取请求参数的值

@GetMapping 组合注解

@Value:可以注入一个配置项,引用容器的一个bean方法

@Component:把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>

@ConfigurationProperties(prefix = "girl") 把对应的前缀下面的配置属性给映射过来。(把同类的配置信息自动封装成实体类


猜你喜欢

转载自blog.csdn.net/qw_0214/article/details/80169624
今日推荐