尚医通项目学习笔记Part2

尚医通项目学习笔记2

  • 一、目前学习进度
  • 二、项目学习笔记
    • 1.MongoDB
    • 2.Nacos
    • 3.相关接口以及网关
  • 三.阶段小总


一、目前学习进度

完成了医院上传接口、医院管理、科室管理、排班管理的前后端搭建。

二、项目学习笔记

1.MongoDB

MongoDB是一种非关系型的数据库,它具有对数据库高并发读写、对海量数据的高效率存储和访问、对数据库的高可扩展性和高可用性等优点。
安装好MongoDB后一开始我一直启动不起来,后来在网上搜到解决办法。原来是安装完之后它自动生成的Date/db文件夹识别不出来,需要自己创建一个。于是在D盘创建一个Date/db文件夹后可以连接上MongoDB了。
MongoDB是自带服务器的。mongod.exe就是服务器启动程序,由于自动生成的目录识别不了,所以每次启动的时候都是在cmd窗口内手动启动。输入

mongod.exe --dbpath 路径

来启动服务器的。然后再启动mongo.exe启动mongoDB。

上面虽然说了MongoDB的好处,但我在实际项目学习的过程中并没有非常直观的感受到。最大的感触就是SpringBoot整合了MongoDB,使用里面的MongoRepository按照规定的命名规则就可以省去写很多查询方法的步骤。里面也通MP一样封装了一些查询方法,可以减少一些简单SQL语句的书写。

2.Nacos

Nacos是一个易于构建云原生应用的动态服务发现、配置管理和服务管理平台。我们用它来管理我们之前写的hosp和cmn模块。Nacos的使用需要在service模块pom配置文件中引入相应依赖。

    
        org.springframework.cloud
        spring-cloud-starter-openfeign
    
    
    
        com.alibaba.cloud
        spring-cloud-starter-alibaba-nacos-discovery
    

还需要在相应的Application启动项上加上@EnableFeignClients(basePackages=‘“扫描路径”)注解。

需要注意的是,我在第一次启动Nacos时候一直失败,而且Nacos启动窗都是闪退。几经查阅之后发现,要启动Nacos必须要在环境变量中有JAVA_HOME这一个变量,之前配置JDK的时候我把JDK的路径直接配置到path环境变量里面了。在这里要单独拉出来建立一个JAVA_HOME变量,否则Nacos无法启动。

3.相关接口以及网关

上传接口、医院管理、科室管理、排班管理的开发流程遵循后端–>前端的流程。
后端中先写Controller控制层接口,然后实现接口方法,通过swagger测试所写方法。
前端中如果是一个新的页面的话要先去router/index.js中添加路由,然后去相应api文件中封装相应api请求,最后在去要展示的页面中添加组件,实现相应事件。
这一套流程开发完之后,后台的系统除用户层面外的功能已经开发完成了。最后使用Spring cloud gateway来实现统一的API路由管理,可以解决跨域的问题。
在相应的模块配置文件中引入要使用的依赖:

 		<dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-gatewayartifactId>
        dependency>
        <dependency>
            <groupId>com.alibaba.cloudgroupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
        dependency>

在配置好网关的相应配置后,还需在网关的启动项上要加上@EnableDiscoveryClient和@EnableFeignClients(basePackages = “”)注解。
网关启动时默认占用localhost 80端口号,要注意检查当前80端口号有没有被占用,如果有被占用,需要更改端口号或关闭正在占用的进程。
在这里插入图片描述

三.阶段小总

转眼间学习这个项目也过了十来天,也基本算是完成了这个项目一半的内容。期间学习到了很多,今天大致浏览了一下项目剩余部分的内容,主要是做前台用户方面的注册、登录、挂号系统,总体开发流程和后台的系统差别不大,期间也会用到一些新的功能比如微信登录、生成二维码、微信付款、短信验证码等等,但这些都不是目前的我最需要的。

这个项目也让我学到了很多,熟悉了SpringBoot的基本操作,一个项目的基本开发流程还有一些新奇好用的工具。项目的接下来部分我想先放一放,回归java和编程的基础,去巩固一些基础重要的东西。

加油!

你可能感兴趣的:(学习笔记,java)