javaee之黑马乐优商城1

问题1:整体的项目架构与技术选型

 

 

 技术选型

开发环境

 域名测试

如何把项目起来,以及每一个目录结构大概是什么样子

通过webpack去启动了有个项目,这里还是热部署,文件改动,内容就会改动 

Dev这个命令会生成一个本地循环地址和ip,然后直接访问这个ip就可以访问到项目

下面说一下关键目录结构

说一下里面的webpack.base.conf.js这个配置文件

 

 再来说config这个文件夹,是项目的配置文件,里面的Index.js可以定义端口,一般后端端口我们全部设置为80开始的端口,前端就是90打头

 每个页面是如何找到的

 在src下面是我们存放的具体相关页面

下面看一下主体文件

主页面的一个修改

下面说一下怎么找到具体的一个页面

这里每一个title都对应了一个路由

 基本上来说前端页面就是这样进行修改的

整体的项目创建

先来创建一个大的父工程,用来给子工程管理依赖

 采用无骨架方式创建一个父工程

引入下面依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.leiyou.parent</groupId><artifactId>leiyou</artifactId><version>1.0.0-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.1.RELEASE</version><relativePath/> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Finchley.RC1</spring-cloud.version><mybatis.starter.version>1.3.2</mybatis.starter.version><mapper.starter.version>2.0.2</mapper.starter.version><druid.starter.version>1.1.9</druid.starter.version><mysql.version>5.1.32</mysql.version><pageHelper.starter.version>1.2.3</pageHelper.starter.version><leyou.latest.version>1.0.0-SNAPSHOT</leyou.latest.version><fastDFS.client.version>1.26.1-RELEASE</fastDFS.client.version></properties><dependencyManagement><dependencies><!-- springCloud --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><!-- mybatis启动器 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>${mybatis.starter.version}</version></dependency><!-- 通用Mapper启动器 --><dependency><groupId>tk.mybatis</groupId><artifactId>mapper-spring-boot-starter</artifactId><version>${mapper.starter.version}</version></dependency><!-- 分页助手启动器 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>${pageHelper.starter.version}</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!--FastDFS客户端--><dependency><groupId>com.github.tobato</groupId><artifactId>fastdfs-client</artifactId><version>${fastDFS.client.version}</version></dependency></dependencies></dependencyManagement><!--放到这个下面的依赖会直接把子类继承--><dependencies><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.4</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories>
</project>

既然这是一个微服务项目,那么就会涉及到注册中心,网关

下面去搭建一个ly-registry模块,这里面的注册中心采用eureka来进行注册

在父类的基础之上创建一个模块

 这里说一个问题:引入Eureka的依赖报红问题

Eureka的依赖是依赖于Spring Cloud的,Spring cloud的版本的不同会导致Eureka可能下载不下来。

所以,首先Spring cloud的引入版本很重要,你的maven镜像能不能把这个spring cloud下载到本地

先来看以前用到的Spring cloud版本

 

这个版本对应的就是Spring cloud的如下版本

看一下仓库下面的spring boot的版本

这个问题是你如果在父类pom文件里面引入的spring cloud版本不能下载下来,那么后面的Eureka你根本导入不进来。

下面在创建一个网关的服务 

 这个网关这个位置必须提供两个依赖

RestTemplate的用法

 

 常用的方法如下:

 几个注解的作用

 

 

 

 

下面说一下关于通用mapper的用法 

关于通用mapper的用法

在Eureka中出现找不到服务

 

先来说一下,关于某个服务的配置,比如user-serive这个服务,它会被注册到eureka注册中心,那么这个服务就会发送一个心跳给一个eureka,告诉它,它是存在的,这个心跳的配置就是

 一个用于检测心跳多久发送一次,主要用于判断服务是否健康。

一个用于在服务端多久没收到这个服务的心跳就会默认杀死这个服务

 关于ribbon的配置

关于项目结构问题        

 

item是一个商品微服务,它的下面有一组接口与服务组件,接口就是类,这个类的pom文件不需要任何依赖,但是在ly-item-service里面还是需要很多依赖的

 它这个业务逻辑大概是这样

上面pom文件与yml文件都配完了,下面说一下如何测试能够打通 

这里需要测试的几个微服务

ly-item

ly-registry

ly-gateway

 微服务启动可能出现的问题1:

上面的问题可能是配置文件出了问题

hikari没找到数据库驱动管理类

 微服务启动还可能出现的问题

连接拒绝,连接失败,这个时候直接make clean 

它的作用如下

 下面说一下在写项目的过程中的异常处理

ResponseEntity这个类,它是继承了HttpEntity这个类,可以添加HtttpStatus状态码。

常见的http状态码

关于枚举类的一些说明

枚举里面可以定义常量,变量与方法(方法一般采用构造方法定义),这里可以通过枚举本身的构造方法为枚举常量赋值

 解决域名映射问题

一般来说,在网络中存在一台DNS域名解析器,这台域名解析器能解析网络中已经注册好了的域名配置,但是如果没有注册域名,就需要去本地的Host文件进行修改

去把localhost配置到映射文件里面

 映射ip可以做了,但是端口号怎么解决,采用nginx来做。

这里的核心就是nginx帮我们监听80端口,端口过来之后,根据location来帮我们负责路径的转发

每一个server块就是一个请求路由,然后帮我监听相应的请求路径,然后根据location的定位负责进行转发。

为什么manage.leyou.com这个过来,会一直跳转失败呢

 

看一下上面的配置,监听的一个server_name是manage.leyou.com ,而这个在DNS网关里面是没有配置过的,所以需要在本地的Hosts里面进行一个配置,也就是在linux机器上做一个配置,但是没有去配,linux找不到这个ip地址.

另外需要再次说明的是,在IDEA对后端项目的配置上,不能这样去配置

 也就是说划红线的位置不能是localhost,因为如果是locahost就只有本地机器才能访问到 ,我们现在需要用linux去访问这个位置,配置成0.0.0.0就代表任何ip都可以进行访问

这里必须修改一下windows上面的hosts文件

上面的端口全部改成linux 的主机ip,不然路由不到

下面展示一下反向代理的正确配置 

 下面进入实际的业务层操作

 

这是它的后端

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Metasploit“MSF”连接postgresql时因排序规则版本不匹配导致无法连接

一、问题 更新Kali之后使用Metasploit时出现一个问题&#xff0c;连接postgresql时因排序规则版本不匹配导致无法连接 警告: database "msf" has a collation version mismatch DETAIL: The database was created using collation version 2.36, but the operati…

Web_单一视频文件mp4转换为m3u分段ts文件实现边下边播

一、下载ffmpeg: Builds - CODEX FFMPEG @ gyan.dev 二、转换视频文件: 先解压缩,会看到如下结构: 进入bin目录,把需要转换的视频文件复制过来,同时新建一个文件夹用来存放转换后的文件,然后按住Shift键同时单击鼠标右键,选择打开Powershell窗口: 输入以下命令(根据…

干货!耽误你1分钟,教你怎么查自己的流量卡是什么卡?

很多朋友都想购买一张正规的号卡&#xff0c;但是在网上一搜流量卡&#xff0c;五花八门&#xff0c;各式各样&#xff0c;那么&#xff0c;我们该如何辨别流量卡呢。 ​ 从种类上来看&#xff0c;网上的流量卡一共分为两种&#xff1a;号卡和物联卡 物联卡不用多说&#xff0…

无涯教程-Android - Linear Layout函数

Android LinearLayout是一个视图组&#xff0c;该视图组将垂直或水平的所有子级对齐。 Linear Layout - 属性 以下是LinearLayout特有的重要属性- Sr.NoAttribute & 描述1 android:id 这是唯一标识布局的ID。 2 android:baselineAligned 此值必须是布尔值&#xff0c;为…

【OpenCV入门】第三部分——绘制图形与文字

文章结构 线段的绘制矩形的绘制圆形的绘制多边形的绘制文字的绘制文字的斜体效果文字的垂直镜像效果在图像上绘制文字 动态绘制图形 线段的绘制 使用 line() 方法可绘制长短不一的、粗细各异的、五颜六色的线段。 img cv2.line(img,pt1,pt2,color,thickness)img&#xff1a;…

Spring MVC: 请求参数的获取

Spring MVC 前言通过 RequestParam 注解获取请求参数RequestParam用法 通过 ServletAPI 获取请求参数通过实体类对象获取请求参数附 前言 在 Spring MVC 介绍中&#xff0c;谈到前端控制器 DispatcherServlet 接收客户端请求&#xff0c;依据处理器映射 HandlerMapping 配置调…

DT 变形学习

弯曲变形 扩张变形 正弦变形 挤压变形 扭曲变形 波浪变形 内外的影响 雕刻 抖动变形 混合变形 晶格变形 包裹变形 线条变形 重置 在测试一个

嵌入式行业——选择比努力重要

嵌入式开发可以说是一个较大的类别&#xff0c;也可以看作是应用技术的一种广义称谓。它在不同的工业和行业场景中应用不同的业务模式和领域。 举个例子&#xff0c;嵌入式技术结合基站通信技术&#xff0c;就构成了华为基站&#xff1b;嵌入式技术结合视频处理/图像处理技术&a…

docker作业

目录 1、使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘。 1.1启动镜像 1.2启动cloud镜像 1.3浏览器访问 ​编辑 2、安装搭建私有仓库 Harbor 2.1下载docker-compose 2.2 磁盘挂载&#xff0c;保存harbor 2.3 修改配置文件 2.4安装 2.5浏览器访问 2.6 新…

因果推断(六)基于微软框架dowhy的因果推断

因果推断&#xff08;六&#xff09;基于微软框架dowhy的因果推断 DoWhy 基于因果推断的两大框架构建&#xff1a;「图模型」与「潜在结果模型」。具体来说&#xff0c;其使用基于图的准则与 do-积分来对假设进行建模并识别出非参数化的因果效应&#xff1b;而在估计阶段则主要…

2023年信息安全管理与评估任务书模块一网络平台搭建与设备安全防护

全国职业院校技能大赛 高等职业教育组 信息安全管理与评估 任务书 模块一 网络平台搭建与设备安全防护 比赛时间 本阶段比赛时长为180分钟。 赛项信息 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 第一阶段 网络平台搭建与设备安全防护 任务1 网络平台搭建 9:00- 12:00 …

Linux文件管理知识:查找文件(第二篇)

上篇文章详细介绍了linux系统中查找文件的工具或者命令程序locate和find命令的基本操作。那么&#xff0c;今天这篇文章紧接着查找文件相关操作内容介绍。 Find命令所属操作列表中的条目&#xff0c;有助于我们想要的结果输出。上篇文章已讲到find 命令是基于搜索结果来执行操作…

什么是BEM命名规范(Block-Element-Modifier Notation)?它有什么优势?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ BEM命名规范&#xff08;Block-Element-Modifier Notation&#xff09;⭐ BEM命名结构⭐ 优势⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎…

Golang数据结构和算法

Golang数据结构和算法 数据的逻辑结构和物理结构常见数据结构及其特点算法的时间复杂度和空间复杂度Golang冒泡排序Golang选择排序Golang插入排序Golang快速排序Golang归并排序Golang二分查找Golang sort包Golang链表Golang container/list标准库Golang栈stackGolang二叉搜索树…

阻塞非阻塞IO(BIO和NIO),IO多路复用

1.概念 NIO&#xff08;New Input/Output&#xff09;和BIO&#xff08;Blocking Input/Output&#xff09;是Java中用于处理输入输出的两种不同的模型。 BIO 会阻塞&#xff0c;等有了消息&#xff0c;立刻返回&#xff0c;一个线程处理一个recv&#xff08;需要很多线程&…

Redis——》如何评估锁过期时间

推荐链接&#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD…

绘图系统二:多图绘制系统

文章目录 坐标轴控件坐标系控件绘制多组数据源代码 本文基于&#xff1a;&#x1f4c8;从0开始实现一个三维绘图系统 坐标轴控件 三个坐标轴xyz从外观上看其实毫无区别&#xff0c;这种标签和输入框的组合十分常见&#xff0c;为了便于调用&#xff0c;最好实现一个类。 tki…

Qt日历控件示例-QCalendarWidget

基本说明 QCalendarWidget介绍&#xff1a; QCalendarWidget 是 Qt 框架中提供的一个日期选择控件,用户可以通过该控件快速选择需要的日期,并且支持显示当前月份的日历。 这里&#xff0c;我们继承了QCalendarWidget&#xff0c;做了一些简单封装和样式调整 1.使用的IDE&…

Jmete+Grafana+Prometheus+Influxdb+Nginx+Docker架构搭建压测体系/监控体系/实时压测数据展示平台+遇到问题总结

背景 需要大批量压测时&#xff0c;单机发出的压力能力有限&#xff0c;需要多台jmeter来同时进行压测&#xff1b;发压机资源不够&#xff0c;被压测系统没到瓶颈之前&#xff0c;发压机难免先发生资源不足的情形&#xff1b;反复压测时候也需要在不同机器中启动压测脚本&…

Ubuntu22.04.1上 mosquitto安装及mosquitto-auth-plug 认证插件配置

Ubuntu22.04.1上 mosquitto安装及mosquitto-auth-plug 认证插件配置 1、先上效果&#xff0c;可以根据mysql中mosquitto数据库的不同users角色登陆mosquitto&#xff1a; SELECT * FROM mosquitto.users; id,username,pw,super 1,jjolie,PBKDF2$sha256$901$yZnELWKK4NnaNNJl…