springcloud_day2_创建一个微服务工程
1、版本的选择
https://start.spring.io/actuator/info
2、搭建版本
3、技术路线图
4、父级工程使用pom类型,聚合模型
5、微服务模块的步骤
1)建module。2)改pom。3)写YML。4)主启动。5)业务类。
6、子模块之间调用如果是post请求传递参数需要加@RequestBody,并且postman调用的时候是需要使用json格式
总结 @requestBody加与不加的区别如下
使用@requestBody.当请求content_type为:application/json类型的请求,数据类型为json时, json格式如下:{“aaa”:“111”,“bbb”:“222”}
不使用@requestBody.当请求content_type为:application/x-www-form-urlencoded类型的或multipart/form-data时,数据格式为aaa=111&bbb=222。
JQuery的$.ajax(url,[settings])
1.默认的ContentType的值为:application/x-www-form-urlencoded; charset=UTF-8
此格式为表单提交格式,数据为key1=value1&key2=value2的格式 。图二serrializeble,只用的是默认contentType类型。
2.虽然ajax的data属性值格式为:{key1:value1,key2:value2},但最后会转为key1=value1&key2=value2的格式提交到后台 。图二,虽然打印出的结果是不是&格式的,但是会转化。
3.如果ajax要和springmvc交互,要使用key1=value1&key2=value2的格式,后台springmvc只需要定义对象或者参数就行了,会自动映射。
4.如果springmvc的参数有@RequestBody注解(接收json字符串格式数据),ajax必须将date属性值转为json字符串,不能为json对象(js对象,会自动转为key=value形式)。并且,修改contentType的值为:application/json; charset=UTF-8,这样加了@RequestBody注解的属性才能自定映射到值。
5.使用在进行图片或者文件上传时使用 multipart/form-data 类型时、 数据会自动进行映射不要添加任何注解。
7、如果子模块之间有相同的entity类,可以创建一个公用的服务,比如名称是cloud-api-commons;创建完毕,
把entity整个类跟包复制到公共项目去,然后clean、package。把子项目就中的entity删掉,会爆红,再把下面的pom依赖放到子项目中去,刷新就可以了。
<!--公共工程的实体类--> <dependency> <groupId>com.xiangwen</groupId> <artifactId>cloud-api-commons</artifactId> <version>${project.version}</version> </dependency>