@SpringBootApplication
作用:标注在某个类上说明这个类是SpringBoot的主配置类,让spring boot自动给程序进行必要的配置,这个配置等同与:@configuration,@EnableAutoConfiguration 和 @ComponentScan三个配置
@ResponseBody
作用:将java对象转为JSON或者XML格式的数据
解释:将controller的方法返回的对象通过springmvc提供的HttpMessageConverter接口转换为指定的格式后,写入到HTTP response对象的body区,通常用来返回JSON或者XML格式的数据
注意:在使用此注解后不会再走试图处理器,而是直接将数据写入到输入流中,
在使用@RequestMapping后,返回值通常解析为跳转路径,但是加上@ResponseBody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。
@RequestBody
作用:用于读取http请求的内容
解释:通过springmvc提供的HttpMessageConverter接口将读到的内容转换为java对象并绑定到Controller方法的参数上
@Controller
作用:用于定义控制器类
解释:分发处理器会扫描使用该注解的类的方法,并检测该方法是否使用了@RequestMapping注解,@Controller只是定义了一个控制器类,而使用@RequestMapping注解的方法才是处理请求的处理器
备注:在spring中,还需要把这个控制器交给spring来管理。
<!--基于注解的装配-->
<!--方式一-->
<bean class="xxx.xxx"/>
<!--方式二-->
<!--路径写到controller的上一层-->
<context:component-scan base-package="xxx"/>
@RestController
作用:用于标注控制层组件,相当于@ResponseBody 和 @Controller的合集
@RequestMapping
作用:用来映射请求,负责URL到Controller中的具体函数的映射
@EnableAutoConfiguration
作用:SpringBoot自动配置,尝试根据你添加的jar依赖自动配置你的Spring应用
@ComponentScan
作用:默认会扫描该类所在的包下所有的配置类
@Configuration
作用:相当于传统的xml配置文件
@Autowired
作用:自动导入依赖的bean
@Service
作用:用于修饰业务层的组件
@Repository 和 @Mapper
作用:用于声明一个Bean,前者时spring的注解,后者是mybatis的注解、
备注:在仅使用@Mapper注解时,依赖注入时,IDEA会提示错误(不影响运行),这是因为我们没有显示标注这是一个Bean。
解决方案:在对应的接口上添加bean的声明,可以是@Repository,也可以是@Component,效果都是一样的,只是为了声明为bean
@Bean
作用:用@Bean标注方法等价于XML中配置的bean
@Value
作用:将外部的值动态注入到Bean中
@Component
作用:泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
@Qualifier 和 @Resourse
作用:@Autowired默认按照类型匹配注入bean,如果有多个实现类,可以用@Qualifier("实现类名称")表明注入的是哪一个实现类的bean。@Resourse默认按照名称匹配注入bean,可以使用name属性来去欸的那个实际注入的bean,例,@Resourse(name = "xxxx")
@PathVariable
作用:将URL中占位符参数绑定到控制器处理方法的入参中
@RequestMapping(value = "/{userId}" , )
public User deleteUser(@PathVariable (value = "userId") int userId){
...
return user;
}
@RequestParam
作用:将请求参数绑定到控制器方法的参数上
@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
value:参数名
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值
@ModelAttribute
作用:该注解通常在Controller上的某个方法上,此方法会首先被调用,并将方法作为Mode的属性,然后在调用对应的Controller处理方法
@Param
作用:给参数命名
原文:https://www.cnblogs.com/zmy98/p/14627370.html