springMvc入门 三.Scope注解与@RequestParam注解
程序员文章站
2022-07-15 11:19:09
...
文章目录
Scope注解
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
@Scope("prototype")//指定单例模式或多例模式
public class First {
@RequestMapping(value = {"/helloWorld","/login"},method = {RequestMethod.POST,RequestMethod.DELETE})
//使用此注解就可以拦截,项目根路径 + 你输入的value值 ,的请求
//例如上面写的例子,就可以拦截下来,http://localhost:8080/demoSpringMvc/helloWorld
public void login() {
System.out.println("hello");
}
}
当我们指定Scope注解为prototype时会使用多例模式
当我们使用同一个类的对象时会创建多个对象,会稍微多占用一点内存,但是并发速度快
当我们指定Scope注解为singleton时会使用单例模式(默认)
当我们使用同一个类的对象时只会创建一个对象,占用内存较少,但是并发速度慢
RequestParam注解
value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
例如我们在日常的开发中,前端上传了一个name字段,但是我们后端的javaBean中存放的字段名是userName,这样在使用spring的自动注入的时候,就不匹配了
我们就会用到RequestParam注解的value属性
@Controller//使用controler注解就可以将一个普通的java类变成一个servelet
@Scope("prototype")//指定单例模式或多例模式
public class First {
@RequestMapping("/demo3")
public void demo3(@RequestParam(value = "name") String userName,
@RequestParam(value="pwd",required = false) String userPassword){
System.out.println("上传的用户名 : " + userName + " 上传的密码 : " + userPassword);
}
这样springMvc就会自动将前端数据中名称为name的值注入给我们自定义的userName属性,这样就做到了前后端字段名方面的匹配
required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;
defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties[‘java.vm.version’]}”。
上一篇: 提权 --Windows提权方式总结
下一篇: 深入浅出SQL(9)-SELECT进阶