1、@Controller和@RestController
@Controller
返回到指定页面,如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解
@RestController
相当于@ResponseBody + @Controller合在一起的作用. Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
2、@PathVariable 和@RequestParam
@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充
比如一个URL
http://localhost:8080/springmvc/hello/101?param1=10¶m2=20
上面的URL 解析你可以这么写
@RequestMapping("/hello/{id}")
public String getDetails(@PathVariable(value="id") String id,
@RequestParam(value="param1", required=true) String param1,
@RequestParam(value="param2", required=false) String param2){
.......
}
这就是区别了
3、@RequestBody和@RequestParam
@RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);
GET方式无请求体,所以使用@RequestBody接收数据时,前端不能使用GET方式提交数据,而是用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
即:
1、如果参数时放在请求体中,传入后台的话,那么后台要用@RequestBody才能接收到;
2、如果不是放在请求体中的话,那么后台接收前台传过来的参数时,要用@RequestParam来接收,或则形参前什么也不写也能接收。
@RequestBody 可以以3种形式来接收传进来的参数
1、直接以String接收前端传过来的json数据
2、以简单对象接收前端传过来的json数据
3、以复杂对象接收前端传过来的json数据
4、@Value
通过@Value将外部的值动态注入到Bean中
1、注入普通字符串
2、通过配置文件的注入属性(默认为application.properties。因为application.properties在spring boot启动时默认加载此文件。也可以自定义属性文件。自定义属性文件通过@PropertySource加载。)
使用情况
@Value("hello world") //注入普通字符串
public String bbb;
@Value("${ceshi}") //通过配置文件的注入属性
public String aaa;
5、@RunWith和@SpringBootTest
1、@RunWith(SpringRunner.class) 告诉JUnit运行使用Spring的测试支持。SpringRunner是SpringJUnit4ClassRunner的新名字,这个名字只是让名字看起来简单些。
2、@SpringBootTest的意思是“带有Spring Boot支持的引导程序”(例如,加载应用程序、属性,为我们提供Spring Boot的所有精华部分)。
@GetMapping
是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP Get 映射到 特定的处理方法上。
@ResponseBody
该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
6、@Configuration @Bean
@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>,作用为:配置spring容器(应用上下文)
@Bean标注在方法上(返回某个实例的方法),等价于spring的xml配置文件中的<bean>
7、@component
把普通pojo实例化到spring容器中,相当于配置文件中的
<bean id="" class=""/>)
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
8、@PostConstruct
注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。