Java阶段四Day02

news2024/9/20 22:35:59

Java阶段四Day02

文章目录

  • Java阶段四Day02
    • VueCli嵌套路由
    • 总结
    • 项目开发
      • 开发流程
      • 关于项目
      • 项目分析
      • 数据库的设计规范(基于阿里巴巴Java开发手册)
      • 数据库表设计
      • 创建项目
      • 关于依赖项
      • 关于`<build>`报错

VueCli嵌套路由

由于Vue Cli工程是单页面的,为了保证能显示各式各样的页面,则需要将页面的整个区域都设计为<router-view/>,然后根据URL不同,加载不同的视图组件(. vue文件)。但是,即使将整个页面的显示区域作为一个<router-view/>,多个页面仍可能存在共用的部分。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5cCcmZcl-1686564841697)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230612103538907.png)]

如果要设计为以上风格,则页面中的右侧最大的区域也必须是一个<router-view/>, 就会形成最外部(页面所有部分)是<router-view/>的同时,内部还有一个<router-view/> (右侧的大区域),在配置路由时,就需要使用到嵌套路由的做法了。
当然,如果以上设计风格中右侧区域中仍有各页面均显示的部分,还可以继续在其内部进行嵌套,通常,并不建议嵌套太多层次。

提示:以上children下的配置中,各path没有使用/作为第1个字符,则表示在父级路径的基础.上增加,例如配置为user/list, 由于父级配置了/admin,则完整路径为/ admin/user/list

另外,如果希望访问子级嵌套的视图(例如以. 上/ admin对应的视图)时就打开某个其子级视图(例如以上/admin/user/list对应的视图),在配置存在子级的视图(例如以上/admin对应的视图)时,还可以添加redirect属性,使其直接重定向到子级视图

总结

使用VUE Cli的优势:

  • 显示的页 面由多个视图组件共同构成,便于替换任何视图组件,实现“复用”的效果
  • 由于是单页面的,各个库的安装与配置都只需要做一次

设计视图:

  • VUE Cli工程默认加载App.vue
  • <router-view/>标签表示将根据URL使用对应的视图组件
  • 每个视图组件中的根级<template>标签必须只有1个直接子标签
  • 每个视图组件都需要在router/index.js中配置路由

使用axios

  • 在处理响应的回调时,不可以使用传统的函数(包含匿名函数),必须使用箭头函数

配置路由

  • 需要显示在App.vue中的视图组件,直接在routes数组常量中配置路由对象
  • 需要显示在其它视图组件的<router-view/>的视图组件,在“父级”的children数组中配置路由对象
  • 当配置了嵌套路由后, “父级”应该配置redirect属性,指定重定向的目标

项目开发

开发流程

  • 基于软件工程的思想,软件的开发流程大致是:需求分析、可行性分析、总体设.计、详细设计、测试、部署、运维的过程,并且,是循环的过程
  • 切忌过度执着于编写代码

关于项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mro23JCg-1686564841733)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230612142148537.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UHJ1LHJf-1686564841734)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230612142231953.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eSRBFjY4-1686564841735)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230612142248989.png)]

项目分析

  • 大多软件可能都需要开发至少2个或4个项目,分别是:
    • 前台的前端项目
    • 前台的后端项目
    • 后台的前端项目
    • 后台的后端项目
    • 某些软件可能不需要前台项目,例如某些内部使用的OA系统。如果使用微服务架构,可能需要更多项目
  • 前台项目是普通用户使用的,后台项目是管理和运营团队使用的
  • 前端项目是客户端项目,例如网页端、手机APP端等,后端项目是服务器端项目

数据库的设计规范(基于阿里巴巴Java开发手册)

  • 【强制】表名不使用复数名词

    • 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于DO类名也是单数形式,符合表达习惯
  • 【强制】禁用保留字,如descrangematchdelayed等, 请参考MySQL官方保留字

  • 【强制】表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。数据库字段名的修改代价很大,因为无法进行预发布,所以字段名称需要慎重考虑

    • 说明:MySQL在Windows下不区分大小写,但在Linux下默认是区分大小写。因此,数据库名、表名、字段名都不允许出现任何大写字母,避免节外生枝

      正例:aliyun_admin,rdc_ config,level3_name

      反例:AliyunAdmin,rdcConfig,level_3_ name

  • 【强制】小数类型为decimal,禁止使用floatdouble

    • 说明:floatdouble在存储的时候,存在精度损失的问题,很可能在值的比较时,得到不正确的结果。如果存储的数据范围超过decimal的范围,建议将数据拆成整数和小数分开存储
  • 【强制】varchar是可变(65532,是65535中通过1个字节存储是否为Null,额外2个字节记录实际存储长度)长字符串,不预先分配存储空间,长度不要超过5000,如果存储长度大于此值,定义字段类型为text,独立出来一张表,用主键来对应,避免影响其它字段索引效率

  • 【强制】表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsigned tinyint (1表示是,0表示否)

    • 说明:任何字段如果为非负数,必须是unsigned

      正例:表达逻辑删除的字段名is_deleted,1表示删除,0表示未删除

  • 【强制】表必备三字段:idgmt_creategmt_modified

    • 说明:其中id必为主键,类型为unsigned bigint、 单表时自增、步长为1,gmt_creategmt_modified的类型均为date_time类型,前者现在时表示主动创建,后者过去分词表示被动更新
  • 【推荐】字段允许适当冗余,以提高查询性能,但必须考虑数据一致。冗余字段应遵循:不是频繁修改的字段、不是varchar超长字段,更不能是text字段,牺牲空间换取时间

    正例:商品类目名称使用频率高,字段长度短,名称基本一成不变,可在相关联的表中冗余存储类目名称,避免关联查询

  • 【参考】合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索速度

数据库表设计

DROP TABLE IF EXISTS content_category;
CREATE TABLE content_category
(
    id           BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '数据ID',
    name         VARCHAR(32)  DEFAULT '' COMMENT '类别名称',
    parent_id    BIGINT UNSIGNED DEFAULT 0 COMMENT '父级类别ID,如果无父级,则为0',
    depth        TINYINT UNSIGNED DEFAULT 0 COMMENT '深度,最顶级类别的深度为1,次级为2,以此类推',
    keywords     VARCHAR(256) DEFAULT '' COMMENT '关键词列表,各关键词使用英文的逗号分隔',
    sort         TINYINT UNSIGNED DEFAULT 0 NOT NULL COMMENT '排序序号',
    icon         VARCHAR(256) DEFAULT '' COMMENT '图标图片的URL',
    enable       TINYINT UNSIGNED DEFAULT 0 COMMENT '是否启用,1=启用,0=未启用',
    is_parent    TINYINT UNSIGNED DEFAULT 0 COMMENT '是否为父级(是否包含子级),1=是父级,0=不是父级',
    is_display   TINYINT UNSIGNED DEFAULT 0 COMMENT '是否显示在导航栏中,1=启用,0=未启用',
    gmt_create   DATETIME     DEFAULT NULL COMMENT '数据创建时间',
    gmt_modified DATETIME     DEFAULT NULL COMMENT '数据最后修改时间',
    PRIMARY KEY (id)
) COMMENT ='内容-类别' CHARSET = utf8mb4;

DROP TABLE IF EXISTS content_tag;
CREATE TABLE content_tag
(
    id           BIGINT UNSIGNED AUTO_INCREMENT COMMENT '数据ID',
    name         VARCHAR(32) DEFAULT '' NOT NULL COMMENT '标签名',
    parent_id    BIGINT      DEFAULT 0  NOT NULL COMMENT '父级ID,为0的是标签分类,不为0的是标签',
    enable       TINYINT UNSIGNED DEFAULT 0 NOT NULL COMMENT '是否启用,1=启用,0=未启用',
    sort         TINYINT UNSIGNED DEFAULT 0 NOT NULL COMMENT '排序序号',
    gmt_create   DATETIME    DEFAULT NULL COMMENT '数据创建时间',
    gmt_modified DATETIME    DEFAULT NULL COMMENT '数据最后修改时间',
    PRIMARY KEY (id)
) COMMENT '内容-标签' CHARSET = utf8mb4;

DROP TABLE IF EXISTS content_article;
CREATE TABLE content_article
(
    id            BIGINT UNSIGNED AUTO_INCREMENT COMMENT '数据ID',
    author_id     BIGINT(20) UNSIGNED NOT NULL COMMENT '作者ID',
    author_name   VARCHAR(32)   DEFAULT '' NOT NULL COMMENT '作者名字',
    category_id   BIGINT UNSIGNED NOT NULL COMMENT '类别ID',
    title         VARCHAR(256)  DEFAULT '' NOT NULL COMMENT '标题',
    brief         VARCHAR(256)  DEFAULT '' NOT NULL COMMENT '摘要',
    tags          VARCHAR(256)  DEFAULT '' NOT NULL COMMENT '标签列表,实际存入JSON数据',
    ip            VARCHAR(32)   DEFAULT '' NOT NULL COMMENT 'IP',
    sort          TINYINT       DEFAULT 0  NOT NULL COMMENT '排序序号',
    cover_url     VARCHAR(256)  DEFAULT '' NOT NULL COMMENT '封面图',
    up_count      INT UNSIGNED DEFAULT 0 NOT NULL COMMENT '顶数量',
    down_count    INT UNSIGNED DEFAULT 0 NOT NULL COMMENT '踩数量',
    click_count   INT UNSIGNED DEFAULT 0 NOT NULL COMMENT '浏览量',
    comment_count INT UNSIGNED DEFAULT 0 NOT NULL COMMENT '评论量',
    check_state   TINYINT       DEFAULT 0  NOT NULL COMMENT '审核状态,0=未审核,1=审核通过,2=拒绝审核',
    check_remarks VARCHAR(1024) DEFAULT '' NULL COMMENT '审核原因',
    display_state TINYINT UNSIGNED DEFAULT 0 NOT NULL COMMENT '显示状态,0=不显示,1=显示',
    gmt_create    DATETIME      DEFAULT NULL COMMENT '数据创建时间',
    gmt_modified  DATETIME      DEFAULT NULL COMMENT '数据最后修改时间',
    PRIMARY KEY (id)
) COMMENT '内容-文章' CHARSET = utf8mb4;

DROP TABLE IF EXISTS content_article_detail;
CREATE TABLE content_article_detail
(
    id           BIGINT UNSIGNED AUTO_INCREMENT COMMENT '数据ID',
    article_id   BIGINT UNSIGNED NOT NULL COMMENT '文章ID',
    detail       TEXT NOT NULL COMMENT '详情',
    gmt_create   DATETIME DEFAULT NULL COMMENT '数据创建时间',
    gmt_modified DATETIME DEFAULT NULL COMMENT '数据最后修改时间',
    PRIMARY KEY (id)
) COMMENT '内容-文章详情' CHARSET = utf8mb4;

DROP TABLE IF EXISTS content_up_down_log;
CREATE TABLE content_up_down_log
(
    id            BIGINT UNSIGNED AUTO_INCREMENT COMMENT '数据ID',
    user_id       BIGINT UNSIGNED NOT NULL COMMENT '用户ID',
    resource_type TINYINT NOT NULL COMMENT '资源类型,0=文章,1=评论',
    resource_id   BIGINT UNSIGNED NOT NULL COMMENT '资源ID',
    op_type       TINYINT NOT NULL COMMENT '操作类型,0=踩,1=顶',
    gmt_create    DATETIME DEFAULT NULL COMMENT '数据创建时间',
    gmt_modified  DATETIME DEFAULT NULL COMMENT '数据最后修改时间',
    PRIMARY KEY (id)
) COMMENT '内容-顶踩日志' CHARSET = utf8mb4;

DROP TABLE IF EXISTS content_comment;
CREATE TABLE content_comment
(
    id            BIGINT UNSIGNED AUTO_INCREMENT COMMENT '数据ID',
    author_id     BIGINT(20) UNSIGNED NOT NULL COMMENT '作者ID',
    author_name   VARCHAR(32)   DEFAULT '' NOT NULL COMMENT '作者名字',
    article_id    BIGINT UNSIGNED DEFAULT 0 NOT NULL COMMENT '文章ID',
    content       VARCHAR(512)  DEFAULT '' NOT NULL COMMENT '评论内容',
    ip            VARCHAR(32)   DEFAULT '' NOT NULL COMMENT '踩数量',
    floor         INT UNSIGNED DEFAULT 0 NOT NULL COMMENT '楼层',
    up_count      INT UNSIGNED DEFAULT 0 NOT NULL COMMENT '顶数量',
    down_count    INT UNSIGNED DEFAULT 0 NOT NULL COMMENT '踩数量',
    check_state   TINYINT       DEFAULT 0  NOT NULL COMMENT '审核状态,0=未审核,1=审核通过,2=拒绝审核',
    check_remarks VARCHAR(1024) DEFAULT '' NULL COMMENT '审核原因',
    reference_ids VARCHAR(255)  DEFAULT '' NOT NULL COMMENT '引用评论ID',
    display_state TINYINT UNSIGNED DEFAULT 0 NOT NULL COMMENT '显示状态,0=不显示,1=显示',
    gmt_create    DATETIME      DEFAULT NULL COMMENT '数据创建时间',
    gmt_modified  DATETIME      DEFAULT NULL COMMENT '数据最后修改时间',
    PRIMARY KEY (id)
) COMMENT '内容-评论' CHARSET = utf8mb4;

创建项目

本项目将使用Spring Boot 2.5系列的版本,使用2.5.0 ~ 2.5.14之间的任意版本。Spring Boot 2.6开始,部分框架更新较多
使用IntelliJ IDEA创建项目时,可以先创建任何2.x系列版本,然后,修改pom.xml中的版本号

关于依赖项

通过IntelliJ IDEA的创建向导来创建Spring Boot项目时,不必在创建过程中勾选任何依赖项,而是创建成功后手动在pom. xml中添加事实上,开发实践中需要的许多依赖项,在创建向导的依赖清单中并没有,只能手动添加

关于<build>报错

创建项目后,pom.xml中的<build>标签可能报错,可以删除整个<build>标签,将影响项目打包,但不影响开发,不影响通过IntelliJ IDEA运行项目,或手动添加插件的版本号

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/638801.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何实现不同服务器之间 大规模数据同步?

随着企业结构分散化的不断扩大&#xff0c;企业的数据中心、服务器节点、异地分支机构之间&#xff0c;会存在多种文件交换场景。传统的FTP、rsync、网盘等传输方式在数据体量较小、时效性要求不高的情况下&#xff0c;基本也可以满足需求。 但随着数量爆发式增长&#xff0c;需…

大二下学期期末总结

文章目录 针对学习方面大学生就业指导与创业教育数据结构Java企业级开发大数据实时处理大数据可视化服务器技术 针对生活方面针对课外活动方面 针对学习方面 大学生就业指导与创业教育 这门课很好的帮我们分析了目前的就业形势&#xff0c;预测了未来的就业前景&#xff0c;为…

庆祝牛学长4周年!精彩折扣活动等你来享!

值此周年庆之际&#xff0c;我们衷心感谢您对我们的支持与信任。为了回馈广大用户的厚爱&#xff0c;我们特别推出一系列令人振奋的打折活动&#xff0c;让您在软件购买和使用过程中获得更多实惠和便利。 活动时间&#xff1a;从即日起&#xff0c;至2023年6月26日 活动链接&…

接口测试开发之:一篇搞懂 Cache、Cookie及Session。

目录 1、引言 2、Cache 2.1 缓存定义 2.1.1 缓存概念 2.1.2 缓存优点 2.2 浏览器缓存 2.2.1 存储路径 2.2.2 缓存优点 2.2.3 缓存弊端 2.2.4 原理图 2.3 代理缓存 2.3.1 原理 2.3.2 应用场景 2.3.3 原理图 2.4 网关缓存 2.4.1 原理 2.4.2 缓存分类 2.4.3 缓存…

uniapp uview2.0 其中u--textarea组件无法换行,换行无效问题解决方案

最终发现是因为默认值的问题&#xff0c;uniapp和uview的官方文档写的confirmType的默认值都是done&#xff0c;但是uniapp的textarea在没有配置的情况下是没有值的&#xff0c;uview给加了一个默认值done&#xff0c;就出现了无法返回的问题&#xff0c;尝试了将uview的textar…

qt样式表qss选择器

目录 1、通用选择器 2、类型选择器&#xff08;类和子类&#xff09; 3、类选择器 4、ID选择器 5、子孙后代控件选择器 6、子后代控件选择器 7、属性选择器 7.1 静态属性 7.2 动态属性 8、子控件选择 9、伪状态选择 在开始之前&#xff0c;先要区分3个概念&#xff1…

Android MediaPlayer多次Seek产生杂音优化

前言 MediaPlayer 作为Android自带的Player目前还是存在很多不好使用问题&#xff0c;但实际开发中&#xff0c;还是有不少使用场景&#xff0c;本文针对多次seek产生杂音的问题进行分析讨论&#xff0c;自己遇到了进行记录&#xff0c;目前底层也不好解决和轻易改动原生代码&…

2020年CSP-J认证 CCF非专业级别软件能力认证第一轮真题-单项选择题解析

2020 CCF认证第一轮&#xff08;CSP-J&#xff09;真题 一、单项选择题 (共15题&#xff0c;每2分&#xff0c;共30分;每题有且有一个正确选项&#xff09; 1、在内存储器中每个存储单元都被赋予一个唯一的序号,称为 A、下标 B、序号 C、地址 D、编号 答案&#xff1a;C…

当618成“抢人大战”,知道“怎么抢”才能“抢得到”

文 | 螳螂观察 作者 | 易不二 今年618对很多平台来说都意义非凡。 尤其是最具主场优势的阿里、京东而言&#xff0c;更是一场硬仗&#xff1a;阿里“16N”组织架构调整后&#xff0c;淘天的第一次大促&#xff0c;且还恰逢也淘宝20周年&#xff1b;京东换帅、CEO许冉第一次接…

华为OD机试真题 Java 实现【素数伴侣】【2023 B卷 100分】,附详细解题思路

一、题目描述 若两个正整数的和为素数&#xff0c;则这两个正整数称之为“素数伴侣”&#xff0c;如2和5、6和13&#xff0c;它们能应用于通信加密。现在密码学会请你设计一个程序&#xff0c;从已有的 N &#xff08; N 为偶数&#xff09;个正整数中挑选出若干对组成“素数伴…

13.常用类|Java学习笔记

文章目录 包装类包装类型和String类型的相互转换Integer类和Character类的常用方法Integer创建机制&面试题 String类创建String对象的两种方式和区别字符串的特性String类的常用方法 StringBuffer类String和StringBuffer相互转换StringBuffer常用方法 StringBuilder类Strin…

Java实训日志01

文章目录 一、安装录屏软件&#xff08;一&#xff09;下载软件&#xff08;二&#xff09;安装软件 二、使用录屏软件三、安装XMind软件&#xff08;一&#xff09;下载XMind软件&#xff08;二&#xff09;安装XMind软件 四、创建思维导图&#xff08;一&#xff09;启动XMin…

如何评价广告营销效果

广告营销的目的 广义上的营销&#xff0c;2个主要目的&#xff1a;达成销售和建设品牌&#xff0c;其实后者的终极目的还是前者。销售是短期达成&#xff0c;品牌建设是长期管理。 广告是营销的一部分&#xff0c;广告的效果评估也应该从目的出发探寻方法。 网络广告的特性 网…

2023Fiddler学习笔记 -- 状态栏及辅助选项卡

接上节课内容 2023Fiddler抓包学习笔记 -- 环境配置及工具栏介绍 2023Fiddler抓包学习笔记 -- 如何在会话窗口添加ip列 一、状态栏 1、上面黑色的框框&#xff0c;可以输入相关命令实现操作&#xff0c;比如&#xff1a;bpu baidu&#xff0c;只要url里包含baidu的网站都会被…

Socket 传情:用 Python 编织 TCP 网络

文章目录 参考描述TCP 服务器端与 TCP 客户端通信的基本流程服务器端客户端 使用 socket 实现 TCP 服务器端实现监听套接字socket.socket()Socket().bind()IP 地址的选择本地回环地址某一特定 IP 地址空字符串 Socket().listen()监听套接字的实现 实现连接套接字Socket().accep…

【I2C】Linux使用GPIO模拟I2C

文章目录 1. I2C GPIO系统架构简介2. 如何使能I2C GPIO驱动2.1 config配置2.2 dts配置2.3 测试验证 3. 简单分析i2c-gpio.c驱动3.1 解析设备树3.2 配置SDA和SCL3.3 注册到i2c-algo-bit.c 4. 简单分析i2c-algo-bit.c驱动4.1 提供I2C通信时的算法4.2 注册Adapter 5. 参考资料 1. …

翻车了,被读者找出 BUG

大家好呀&#xff0c;我是小楼。 本文是上篇文章《使用增强版 singleflight 合并事件推送&#xff0c;效果炸裂&#xff01;》的续集&#xff0c;没看过前文必须要先看完才能看本文&#xff0c;实在不想看&#xff0c;拉到文章末尾&#xff0c;给我点个赞再退出吧~Doge 上篇文…

如何进行App性能测试?SoloPi是最佳选择!

目录 引言 SoloPi简介 SoloPi特点 SoloPi的主要功能 下载SoloPi 安装SoloPi 使用SoloPi进行性能测试 性能数据查看与记录 环境加压 响应耗时计算工具 注意事项 Solopi提供的各项性能指标介绍 引言 大家好&#xff01;我是凡哥。 今天我想跟你们分享一下如何进行A…

Python的接口自动化-读写excel文件

目录 引言 一、xlrd、xlwt以及xlutils安装 二、xlrd操作excel文件的数据读取 三、xlwt向excel文件写入数据 四、xlutils操作excel文件 五、封装操作excel读和写的类 引言 使用python进行接口测试时常常需要接口用例测试数据、断言接口功能、验证接口响应状态等&#xff0…

Mysql升级8.0后日期类型兼容性问题

背景 最近对原有项目数据库进行升级&#xff0c;从MySQL 5.7 升级到8.0&#xff0c;因此项目种的驱动程序也要做相应升级。 问题 一、 升级后报&#xff1a;java.time.LocalDateTime cannot be cast to java.util.Date 该问题是因为代码中使用Map类型获取查询返回值&#xf…