springBoot的注解

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配置文件中的,作用为:配置spring容器(应用上下文)
@Bean标注在方法上(返回某个实例的方法),等价于spring的xml配置文件中的

7、@component

把普通pojo实例化到spring容器中,相当于配置文件中的

泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。

8、@PostConstruct

注释用于在依赖关系注入完成之后需要执行的方法上,以执行任何初始化。

你可能感兴趣的:(springBoot的注解)