栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot/Spring Cloud常见注解(面试)持续更新

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot/Spring Cloud常见注解(面试)持续更新

@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;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/750360.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号