项目中的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") 把对应的前缀下面的配置属性给映射过来。(把同类的配置信息自动封装成实体类)