⾕粒商城归纳总结----------------------chapter1
白百何一指禅事件是指的什么在做完尚硅⾕的⾕粒学院以后,为了增加⾃⼰的技术栈继续学习⾕粒商城——
1.学习docker的过程中对容器的⼀个理解就是,每⼀个部署的环境可以⽴刻通过⼀个docker容器进⾏存放对应的镜像映射,并且宿主机以及相对应的镜像之间的关系,⼤linux包含⼩linux其实每个镜像内部都是⼀个⼩linux,可通过命令docker exec -it mysql /bin/bash 进⼊到linux内核中进⾏简单的linux命令操作,在进⾏实践的过程中发现vim命令不可⽤也就是说我们不能进⼊到内核进⾏对⽂件的修改,需要对docker进⾏⽂件挂载以及端⼝映射的⼀个操作,⼤linux的端⼝号映射docker当中的端⼝号并且宿主机当中的⽂件⽬录和docker中镜像对应的⽂件进⾏挂载,挂在过后可以在宿主机进⾏修改内容⽽⽆需进⼊的内核中。
2.P16当中⼈⼈开源的后台管理系统的环境搭建,⽆需安装py并且对应的node版本号为10.20.1 x 64位,并且我们采取⼀个依赖cnpm install操作时,使⽤淘宝镜像,如果使⽤国外的镜像往往依赖下载不成功导致⽆法运⾏,那么安装完以后就可以了。 常见问题: ⼀:使⽤cnpm命令⽆法运⾏脚本使⽤cnpm⽆法使⽤命令的话那么使⽤powershell以管理员⾝份运⾏并且执⾏命令输⼊set-ExecutionPolicy RemoteSigned,选择Y 或者A ,就好了 ⼆:使⽤⼈⼈开源的第⼆条命令时报错(其实是你本机已存在cnpm),也就是说直接运⾏第三条命令即可 三:如果是因为npm install安装不成功失败以后,我们应该将下载的依赖进⾏⼀个删除操作,当然可以直接删除⽂件夹交易待结算资金冻结
node_modules,同时我也了解到有⼀个做法
npm install rimraf -g
rimraf node_modules采药1-600攻略
可以快速删除⽂件夹并且删除彻底且成功。
四.在最新版的idea当中没有.idea⽂件夹并且在运⾏springboot项⽬的时候如何查看run dashboard,最新版放⼊进了view tools中的services并且在run configuration当中并且选择springboot即可。 五.在单元测试的时候报:java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use ①:有可能没有编写启动类 ②:启动类以及单元测试类他们不在同⼀个⽬录下所以报 不到启动类,放在同⼀个包⽬录下就解决这个问题了。 六.gateway⽹关的使⽤(可以提供⾼可⽤) 在部署gateway统⼀前端项⽬请求跳转后端接⼝同⼀路径,并且过程中需要uri路径重写,并且涉及到跨域问题给gateway设置⼀个configuration.
朱门酒肉臭 路有冻死骨
跨域: 跨域的出现指的是浏览器不能执⾏其他⽹站的脚本,本质其实就是js同源策略,浏览器对js施加的安全限制。对如普通的html标签来说不存在跨域问题,并且浏览器向服务器发送⼀个简单请求的时候也就是get,head,post请求并且Content-type有要求,⽽其他请求则是⾮简单请求,⾮简单请求发送新教师岗前培训心得
的时候需要发送⼀个options⽅法预检请求,当发送完以后请求响应是否允许跨域,若允许才真正发送数据给服务器,当然在进⾏表单提交的登录时是post提交同时content-type是application-content所以是⾮简单请求。 七.⽂件上传(涉及跨域问题)
① 起初做⾕粒学院的时候,⽂件上传功能是⽤户将⽂件上传到应⽤服务器当中,并且采⽤阿⾥云提供的sdk,输⼊账密以及对应的accesskey和accesssecret,好处就是不会对外暴露并且⽐较安全,不好的地⽅在于⽂件上传压⼒给到了应⽤服务器上增加了带宽如果上传较⼤的⽂件影响其他接⼝的使⽤
②直接让浏览器上传给对象存储将阿⾥云账密放⼊到js当中,让js直接提交到阿⾥云的oss当中。好处加快速度,降低了服务器的压⼒,坏处就是有泄露账号密码的风险
杨颖整容前后对比③我们采取⼀个⽅式就是浏览器请求应⽤服务器返回⼀个哈希签名,通过返回成功哈希签名校验后使⽤浏览器js上传到阿⾥云oss当中这样既降低了应⽤服务器的压⼒,同时也降低账密泄露的风险。
注:上述③⽂件上传的时候出现了跨域问题,原因就是本项⽬发送给阿⾥云oss出现了跨域问题,js的同源策略,不允许执⾏本项⽬以外的脚本。
解决⽅案就是:在阿⾥云oss当中配置好跨域设置允许哪种⽅式那种请求头来源于哪⾥即可解决
常⽤知识点总结: ① java8新特性stream流式编程:(圣思园) 筛选,排序,聚合 stream流相当于包含了对集合当中的每个元素操作的⼀个容器。那么其操作和&& ||存在着短路操作,如果满⾜那么 ②函数式接⼝: 1.接⼝只有⼀个抽象⽅法 2.接⼝当中可以包含Object当中的⽅法,可以重写相对应的Object⽅法 3.接⼝上⽅声明了@FunctionalInterface 对于函数式接⼝⽽⾔其实现可以是lambda,⽅法引⽤以及构造⽅法实现 ③lambda表达式 其实也就是函数式接⼝实现类的对象,其实就是引⼊了函数式编程,因为在1.8之前⼊参和返回值都不会有函数,那么1.8之后引⼊函数式编程以后可以类似于js⼀样在⼊参上直接编写函数,相对于函数式编程⽽⾔就是对应的函数式接⼝,具体如上。