@RequestMapping:在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,将请求和处理请求的控制器方法关联起来,建立映射关系,这个控制器方法请求路径为http://localhost:端口号/项目名称/RequestMapping命名
@@RequestMapping("/user")
public class UserController{
@RequestMapping("/login")
//这里的请求url路径为http://localhost:8080(默认端口号)/项目名称/user/login
//你也可以通过网关或者nginx对这个请求url进行转发(这里就不多说了)
public ResultMessage login(@RequestBody User user){
//代码....
return resultMessage;
}
}
@RequestBody:主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的)即将json格式的数据转为java对象的;而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。在后端的同一个接收方法里,@RequestBody与@RequestParam()可以同时使用,@RequestBody最多只能有一个,而@RequestParam()可以有多个。
//继续用上面的方法举例,这里先看User实体类属性
@Data
public class User{
private int id;
private String username;
private String password;
}
请求体的json数据
{
"username":"test",
"password":"test"
}
@Responsebody:将java对象转为json格式的数据,将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。
@RequestParam():注解@RequestParam接收的参数是来自HTTP请求体或请求url的QueryString中;RequestParam可以接受简单类型的属性,也可以接受对象类型。
有三个配置参数:
required 表示是否必须,默认为 true,必须。defaultValue 可设置请求参数的默认值。value 为接收url的参数名(相当于key值)。
//常见的是get方法,http://localhost:8080(默认端口号)/项目名称/user/login?username=&password=;当然post也行
public ResultMessage login(@RequestParam(value = "username") String username,@RequestParam(value = "password") String password){
//代码....
return resultMessage;
}
@PathVariable:spring3.0的一个新功能:接收请求路径中占位符的值
@PathVariable("xxx")
通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable("xxx")
@RequestMapping(value="user/{id}/{username}")
请求路径:http://localhost:8080/project/user/1/test
@GetMapping:一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。
@PostMapping:一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。
@Service:注解用于类上,标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。
@Mapper:使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入到ServiceImpl中。
@MapperScan:功能跟@Mapper一样但是可以直接扫描整个包,使同个包下拥有@Mapper注解效果,该注解在启动类Application上。
@Repository:功能跟@Mapper类似,但是需要在Spring中配置扫描地址,然后生成Dao层的Bean才能被注入到Service层中;@Mapper不需要配置扫描地址,通过xml里面的namespace里面的接口地址,生成了Bean后注入到Service层中。
@Component:@Component (把普通pojo实例化到spring容器中,相当于配置文件中的 )
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
@ComponentScan:它对应XML配置中的元素,@ComponentScan的功能其实就是自动扫描并加载符合条件的组件(比如@Component和@Repository等)或者bean定义,最终将这些bean定义加载到IoC容器中。
@Controller:控制器(注入服务)用于标注控制层,相当于struts中的action层
@Entity :表明是一个实体类
@Table :对应的数据表名
@Column : 映射表对应的字段名
@Setter:自动添加类中所有属性相关的 set 方法
@Getter:自动添加类中所有属性相关的 get 方法
@Builder:使得该类可以通过 builder (建造者模式)构建对象
@RequiredArgsConstructor:生成一个该类的构造方法,禁止无参构造
@ToString:重写该类的toString()方法
@EqualsAndHashCode:重写该类的equals()和hashCode()方法
@Data:需要导入Lombok依赖,等价于上面的@Setter、@Getter、@RequiredArgsConstructor、@ToString、@EqualsAndHashCode
@Slf4j:如果不想每次都写private final Logger logger = LoggerFactory.getLogger(当前类名.class); 可以用注解@Slf4j;



