项目笔记1

206 阅读1分钟

逆向工程使用

1.导入逆向工程
2.下载人人开源后台管理系统脚手架工程(renren-fast)
    1.导入工程,创建数据库
    2.修改工程shiro依赖SpringSecurity
    3.删除部分暂时不需要的业务
3.下载人人开源后台管理系统vue端脚手架工程(renren-fast-vue:组件式开发)
    1.vscode导入前端项目
    2.前后端联调测试基本功能
4.其他:renren-generator(代码生成器:生成entity/xml/dao/service/vue/sql代码,
    让大家专注于复杂业务代码、高并发、高可用、分布式架构等),
    renren-fast-adminalte(HTML,css,js)
    $ git clone HTTPS
    删掉开源项目的.git文件夹,复制进本项目文件夹

git

码云新建仓库,选择语言,添加.gitignore(Maven),添加开源许可证,开发模型(dev分支,master分支)
idea->new->project from version control->git,填写URL,自动clone项目

  • 项目内创建微服务new->model,Web和OpenFeign
  • 包名规范,com.包名.微服务名称(组织名统一)
  • 模块名,包名 提交代码:settings->plugins->gitee安装插件,commit提交到本地仓库,commit and push提交推送到码云

聚合服务

总项目为root

<groupId>com.atguigu.gulimall</groupId>
<artifactId>gulimall</artifactId>
<version>0.0.1</version>
<name>gulimall</name>
<description>聚合服务</description>
<packaging>pom</packaging>

<modules>
    <module>xxxx</module>
    <module>xxxx</module>
    <module>xxxx</module>
    <module>xxxx</module>
</modules>

修改.gitignore文件, 忽略垃圾文件 只剩下.gitignore和代码文件

**/mvnw
**/mvnw.cmd

**/.mvn
**/target/

.idea

数据库设计

利用powerDesigner表名,字段,不涉及外键(插入时不检查外键保持一致性)code(真正名字,name(中文名,preview
Database->Generation
每个微服务操作自己的数据库
虚拟机up,MySQL连接虚拟机,vagrant ssh(虚拟机连接sql),docker ps(查看运行容器),要配置容器自动启动(sudo docker update redis/mysql --restart=always)

后端项目

    <module>renren-fast</module>

db->mysql.sql,ctrl+c
进入mysql创建数据库,ctrl+v
修改renren-fast,application.yml配置文件:端口号,项目名地址,redis,数据库(dev)
application-dev.yml:修改地址url、用户名、密码
后台:localhost:8080/renren-fast/
前端:localhost:8001/

前端项目

vscode\

1.安装Node.js
    利用npm,利用npm下载依赖包
      node -v检查版本
      设置镜像
2.npm install
3.npm run dev
    前后联调

逆向工程

利用renren-generator生成增删改查代码,依旧需要修改配置文件数据库地址、用户名、密码,properties配置文件中修改包名相关的信息,moduleName
localhost/#generator生成代码
生成main文件夹

->resources(java-...controller/dao/entity/service)->mapper\

直接cv到微服务main文件夹中
service中有接口
要引入相关依赖,如mybaitsplus/lombok/shiro/httpcomponents等依赖,new->gulimall-common
cv工程,需要粘贴公共类,在renren-fast中src->main->java->io->renren->common->utils中存储公共类
maven resposity
逆向工程:templates编写生成规则,可注释掉相关注解和引入

mybaitsplus

1.导入依赖
2.配置:参考官方文档,配置数据源和mybaitsplus相关
    mysql-connector(mysql兼容,8.0可适配
    servlet-api
    alt+enter导入包
3.数据源:application.yml配置
    datasource:
      username:
      password:
      url:
      driver-class-name:
 4.mybaitsplus配置
     1.@MapperScan
     2.mybaitsplus sql配置文件
         mapper-locations: classpath:
         配置主键自增
         id-type:auto
 5.server:
     port:
  • 相关测试代码
//lambda表达式
List<BrandEntity> list = brandService.list(new QueryWrapper<BrandEntity>().eq("brand_id", 1L));
list.forEach((item)->{
    System.out.println(item);
});
//快捷键new 实例 alt+enter

分布式插件 Spring Cloud Alibaba

注册中心、配置中心、网关(如之前了解过的oauth2),直接在common中引入依赖<dependencyManagement>控制版本号\

了解nacos:

  • discovery 注册发现
    1.安装server
    2.配置server地址
        cloud:
            nacos:
                discovery:
                    server-addr:
    3.@EnableDiscoveryClient
        可注册,开启服务注册发现功能
        application:
            name:
    4.配置管理、服务管理、集群管理
  • Feign声明式远程调用 Http协议使微服务可相互调用 (java-...controller/dao/entity/service/feign)
1.引入openfeign
2.编写接口
    @FeignClient("远程服务名")
    interface接口{
        @RequestMapping("请求对应方法")
        return
    }
3.@EnableFeignClients(basePackages = "feign文件夹的全包名")
自动扫码地址中的@FeignClient接口中声明的方法
  • config 配置管理
    1.依赖
    2.otstrap.properties配置:当前服务名称和地址
    spring.application.name=
    spring.cloud.nacos.config.server-addr=(同注册地址
    
    3.中心默认添加数据集(dataid)应用名.properties
    添加任何配置、动态获取配置(两个注解)
    @RefreshScope 动态刷新
    @Value(${coupon.user.name})
    获取配置文件中配置项的名
    
    配置中心有的优先配置中心,而后当前应用的配置文件

细节

  • 命名隔离:配置隔离

    默认public
    基于开发、测试,生产环境
    基于微服务隔离
    ···等

    spring.cloud.nacos.config.namespace=
    
  • 配置集

    所有配置的集合

  • 配置集id

    配置文件名

  • 配置分组

    默认所有配置集都属于:DEFAULT_GROUP

      spring.cloud.nacos.config.group=
      
      #加载多配置集
      spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
      spring.cloud.nacos.config.ext-config[0].group=dev
      spring.cloud.nacos.config.ext-config[0].refresh=true