JavaWebDay5

发布时间 2023-12-25 23:45:19作者: sixsix666

     此方法接受请求数据较繁琐,了解即可,接下来看基于springboost的接受方法

     注意括号里的形参要与请求时发出来的相一致,如发送name=tom age=10 则就是上图中例子一般,如果参数对应的上则接收成功,如果对应不上则接收不成功但也不会报错,如果实在不匹配可以使用springboost的注解@RequestParam来完成映射

     

RequestParam后的括号为指定的属性可以是name或者value图中的为name,后面接的为请求参数名,比如上图中的为name=tom所以接的是”name“

注意事项中所描述的意思为:比如把postman中的name那一栏表单给删除则就会报错,此时可以在RequestParam注解后的括号属性值中添加 required=false此时就不会报错 name接收的为null

当请求参数过大的时候就不方便把这些全部写在表单中,此时可以把他们封装到一个类中,比如图中的都把他们封装到user这个实体对象当中,要注意要想封装成功则需要保证实体类的对象名和请求参数名 保持一致

如果是个复杂实体对象,保证层级关系对应起来就可以了,address对象里面有两个请求则写一个类Address里面有对应的请求体就可以了,类似下面的图

当一个key对应的value值有多个的时候则可以使用数组或集合进行封装

数组封装:

需要保证数组后接的变量名与参数名保持一致如上面的hobby

  集合封装

注意要在集合前用注解@RequestParam进行绑定参数关系,因为默认是用数组进行封装的

注意需要用一个注解来说明其请求数据的格式,有些是年月日有些是///等,也需要注意要与属性名相对应,localdatetime是jdk1.8后引入的一个参数

类似也是把json的请求数据封装到一个实体对象当中,注意也是用了一个注解进行封装

所需要请求的参数直接写在路径上,此时注解后的/path/{id}中的{id}不可以替换为1,2等等具体的数字因为一旦换了一个数字就会失效,所以写一个{id}表明不是固定值,id是自己设的名字可以换为其他的,同样后面integer接的属性名要与大括号里面的名称相一致,同时也要注意有个注解

如果有多个则在括号里用多个注解,如下图

响应

eg

 

获取文件的路径时若用磁盘地址url则会不方便因为一旦更改磁盘位置这个就失效了,此时可以使用类加载器的getsource方法来进行获取文件的路径

在类加载器中有一个getResource方法,我们常常用这个方法去加载配置文件,当我们在一个成员方法中使用this.getClass().getClassLoader()时,会获取当前类的类加载器,在一个简单的java项目中,一般会获得AppClassLoader,通过调用该类加载器的getResource("filename")方法,我们可以获得放在src目录下的文件url。双引号里的为文件名

 

分层解耦

在对service和dao编程的时候可能有很多个项目此时可以用接口来管理,面向接口编程

 

控制反转即在service和dao类中添加注解@Component,意思是将当前类交给ioc容器管理

依赖注入,在对象前加入注解@AutoWired,运行时ioc容器会提供该类型的bean对象,并赋值给该变量,该注解也要在所依赖的依赖对象前加即有层级关系

所产生的bean对象名字默认是对象的名字首字母小写若想改名可以在注解后接(value=”aaa“)其中value可以省略