@Value
一般用来修饰一个属性,可以读取配置文件的相关属性的属性值。
语法如下: 注意:不要用username作为键名,因为会将计算名读取进去。
|
@SpringBootApplication
用来修饰main方法,也就是项目的启动类,通过该注解的修饰,可以通过main方法来启动该Web项目。
被其修饰的启动类的存放位置也是需要严格按照规范。一般来说,默认即可。
如果项目需要变更,也要注意调整之后的位置,要放在顶级包下的根路径下,保证和你的service,mapper,controller,web包同级。但是也不能直接放在项目的根目录src下,否则也会失效。
如下就是正确的做法:
如下就是错误的做法:
@Controller
用来修饰一个类,表示该类专门用来和前台进行交互(处理前台的请求)
一般将专门用来和前台交互的类都统一放在package为web的包下,或package为controller的包下。表示web访问层或控制层。
@RequestMapping
一般用来修饰一个方法,表示该方法是处理前台传来的请求。
一般来说都是一个方法处理一个请求。
前提是该方法所在的类已经被@Controller注解修饰。
语法如下: @RequestMapping(“/xx”) xx表示一个请求名。 如图所示:
后台: 前台: 以上代码的意思:点击超链接访问test1请求,然后进入test1方法,打印test1,然后跳转至11.html页面。 |
备注1:方法的返回值类型:暂时都使用String类型。
备注2:方法的返回值:表示处理完请求后返回哪个页面或哪个请求。例如上述代码:
return “11.html”;就表示返回11.html页面 如果是return “11”;就表示进入11请求
所以代码和文件名的规范性就需要规范。
备注3:方法的方法名一般和请求名相同。
备注4:默认情况下:@RequestMapping(“/xx”) 中的xx请求名肯定是独一无二的。
不然前台发出一个请求,到底是进入哪个方法?这点尤为主要,尤其是到了项目后期,项目需求增多,请求增多,就很容易出现冲突。
如果修饰一个方法,表示前台请求的url地址要和其保持一致。
但是也可以修饰一个类。 如下例所示:
场合如下:
需要实现3个请求分别处理:管理员登录和学生登录和老师登录。
解决方式:分别通过:
@RequestMapping(“/login1”) @RequestMapping(“/admin_login”)
@RequestMapping(“/login2”) 或者 @RequestMapping(“/student_login”)
@RequestMapping(“/login3”) @RequestMapping(“/teacher_login”)
以上方式可但是到以解决,了后期,就很容易出现以下问题:
方法名不知道取什么。
方法名容易出现冲突
所以正确的处理方式:在类上额外增加一个@RequestMapping注解。
例如:@RequestMapping(“/admin”)
如果在类上也有这个注解,就表示该类下的所有的请求,都需要加上该前缀。
例如下图: 正确的请求路径应该为: /teacher/login
这样不仅不用担心请求名的冲突,也不用考虑方法名的命名,而且增加了规范性。
不同的业务被不同的类处理。
总结:@RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。
如果用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
如果用于方法上,表示响应请求的方法都是以该地址作路径。
@Get/Post/Put/DelectMapping
@GetMapping是@RequestMapping(method = RequestMethod.GET)缩写的组合注解,用于将 HTTP 的get 请求映射到特定处理程序的方法注解。
@PostMapping是@RequestMapping(method = RequestMethod.POST)缩写的组合注解,用于将 HTTP 的post 请求映射到特定处理程序的方法注解。
@PutMapping是@RequestMapping(method = RequestMethod.PUT)缩写的组合注解,用于将 HTTP 的put请求映射到特定处理程序的方法注解。
@DelectMapping是@RequestMapping(method = RequestMethod.DELECT)缩写的组合注解,用于将 HTTP 的DELECT请求映射到特定处理程序的方法注解。
@RequestParam
@RequestParam : 表示请求参数
required: 表示是否必须 默认为true 表示如果没有收集到就报错一般改成falsedefaultValue : 表示如果没有成功获取, 将赋予一个默认值
value : 获取的是前台的哪个参数 默认是修饰的方法参数名
@RequestBody
@RequestBody修饰一个参数表不将该参数进行JSON化的处理
前提接受到的数据已经JSON化了