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,不然路由不到

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

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

 

这是它的后端

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Leetcode54螺旋矩阵

思路&#xff1a;用set记录走过的地方&#xff0c;记下走的方向&#xff0c;根据方向碰壁变换 class Solution:def spiralOrder(self, matrix: list[list[int]]) -> list[int]:max_rows len(matrix)max_cols len(matrix[0])block_nums max_cols * max_rowscount 1i 0j…

Spring: HiddenHttpMethodFilter的用法及原理

作用&#xff1a;将html表单提交的post请求转换为put请求或delete请求发给接口。 html不支持put和delete. 一、web.xml中配置过滤器 <filter><filter-name>HiddenHttpMethodFilter</filter-name><filter-class>org.springframework.web.filter.HiddenH…

【大模型AIGC系列课程 3-3】低成本的领域私域大模型训练方法

重磅推荐专栏: 《大模型AIGC》 本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和Stable Diffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经验分享,旨在帮助读者更好地…

【JS】—闭包—双例对比法学习总结

一、选定知识点&#xff1a;闭包 二、指令学习 1. 闭包MDN的定义 闭包&#xff08;closure&#xff09;是一个函数以及其捆绑的周边环境状态&#xff08;lexical environment&#xff0c;词法环境&#xff09;的引用的组合。换而言之&#xff0c;闭包让开发者可以从内部函数…

从零开始搭建AI网站(6):如何使用响应式编程

响应式编程&#xff08;Reactive Programming&#xff09;是一种编程范式&#xff0c;旨在处理异步数据流和事件流。它通过使用观察者模式和函数式编程的概念&#xff0c;将数据流和事件流抽象为可观察的序列&#xff0c;然后通过操作这些序列来实现各种功能。 在响应式编程中…

2023谷歌开发者大会直播大纲「终稿」

听人劝、吃饱饭,奉劝各位小伙伴,不要订阅该文所属专栏。 作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 跨域学习者,从事过全栈研发、产品经理等工作,现任研发部门 CTO 。荣誉:2022年度博客之星Top4、博客专家认证、全栈领域优质创作者、新星计划导师,“星荐官共赢计…

Arthas教程 - 安装篇 (一)

目录 一、在线安装 1.1 Windows安装 1.2 小结 1.3 linux安装 二、离线安装 一、在线安装 1.1 Windows安装 本地指定目录下&#xff08;例如我是&#xff1a;F:\测试\arthas&#xff09;&#xff0c;使用Windows的cmd窗口&#xff0c;执行如下命令则会将jar包下载下来。大…

论文阅读_扩散模型_LDM

英文名称: High-Resolution Image Synthesis with Latent Diffusion Models 中文名称: 使用潜空间扩散模型合成高分辨率图像 地址: https://ieeexplore.ieee.org/document/9878449/ 代码: https://github.com/CompVis/latent-diffusion 作者&#xff1a;Robin Rombach 日期: 20…

WEB项目利用Eclipse打包成war包并部署在CentOS8

1、Eclipse把WEB项目打包成war包 2、Xftp上传war包到Linux中安装Tomcat的webapps目录 /usr/local/tomcat/apache-tomcat-9.0.80/webapps3、利用IP地址访问部署的项目 在CentOS中可用 ifconfig找到对应的IP地址 http://192.168.122.2:8080/CentOS-Web/index.html

对Excel表中归类的文件夹进行自动分类

首先把excel表另存为.txt文件&#xff08;注意&#xff1a;刚开始可能是ANSI格式&#xff0c;需要转成UTF-8格式&#xff09;&#xff1b;再新建一个.txt文件&#xff0c;重命名成.bat文件(注意&#xff1a;直接创建的如果是是UTF-8格式&#xff0c;最好转成ANSI格式&#xff0…

VSCode连接服务器

Pycharm连接服务器参考我的另一篇文章Pycharm远程连接服务器_pycharm进入服务器虚拟环境终端_Jumbo星的博客-CSDN博客 本质上Pycharm和VSCode都只是IDE&#xff0c;没有什么好坏之分。但是因为Pycharm连接服务器&#xff08;准确来说是部署&#xff09;需要买professional。而…

Lesson5-1:OpenCV视频操作---视频读写

学习目标 掌握读取视频文件&#xff0c;显示视频&#xff0c;保存视频文件的方法 1 从文件中读取视频并播放 在OpenCV中我们要获取一个视频&#xff0c;需要创建一个VideoCapture对象&#xff0c;指定你要读取的视频文件&#xff1a; 创建读取视频的对象 cap cv.VideoCapt…

关于大模型参数微调的不同方法

Adapter Tuning 适配器模块&#xff08;Adapter Moudle&#xff09;可以生成一个紧凑且可扩展的模型&#xff1b;每个任务只需要添加少量可训练参数&#xff0c;并且可以在不重新访问之前任务的情况下添加新任务。原始网络的参数保持不变&#xff0c;实现了高度的参数共享 Pa…

ChatGPT 实现动态地图可视化展示

地图可视化分析有许多优点和好处: 1.直观理解:地图可视化使得复杂的数据更易于理解。通过地图可视化,人们可以直观地看到地理位置、地区之间的关系以及空间分布的模式。 2.提高决策效率:地图可视化可以帮助决策者快速理解和解释数据,从而提高决策效率。 3.高效的数据整…

OpenCV(八):图像二值化

目录 1.固定值二值化 2.自适应阈值二值化 3.Android JNI完整代码 1.固定值二值化 固定阈值二值化是OpenCV中一种简单而常用的图像处理技术&#xff0c;用于将图像转换为二值图像。在固定阈值二值化中&#xff0c;像素值根据一个预定义的阈值进行分类&#xff0c;大于阈值的…

jupyter常用的方法以及快捷键

选中状态 蓝色 按enter 进入编辑状态 编辑状态 绿色 按Esc 进入选中状态 Code模式运行是运行代码 Markdown模式运行是进入预览状态 - - - 是文本格式的一种精简的语法形式 Raw NBConvert 是默认文本状态 - - - 输入什么样 展示什么样 Y - - - 切换code模式 M - - - 切换Markdo…

C++:日期类

学习目标&#xff1a; 加深对四个默认构造函数的理解&#xff1a; 1.构造函数 2.析构函数 3.拷贝构造 4.运算符重载 实现功能 1.比较日期的大小 2.日期-天数 3.前/后置&#xff0c;-- 这里基本会使用运算符重载 定义一个日期类 class Date { public://1.全缺省参数的构造函数Da…

C++面试题(期)-数据库(二)

目录 1.3 事务 1.3.1 说一说你对数据库事务的了解 1.3.2 事务有哪几种类型&#xff0c;它们之间有什么区别&#xff1f; 1.3.3 MySQL的ACID特性分别是怎么实现的&#xff1f; 1.3.4 谈谈MySQL的事务隔离级别 1.3.5 MySQL的事务隔离级别是怎么实现的&#xff1f; 1.3.6 事…

qt creater11 翻译国际化教程教程:

先出效果图。 闲聊几句&#xff1a;qt这个翻译很方便&#xff0c;能直接导出项目里所有文字。 具体步骤如下&#xff1a; 在Qt中&#xff0c;我们可以使用QTranslator类来实现多语言切换。以下是一般步骤&#xff1a; 1. 在你的源代码中&#xff0c;所有需要翻译的字符串都…

【Linux】JumpServer 堡垒机远程访问

文章目录 前言1. 安装Jump server2. 本地访问jump server3. 安装 cpolar内网穿透软件4. 配置Jump server公网访问地址5. 公网远程访问Jump server6. 固定Jump server公网地址 前言 JumpServer 是广受欢迎的开源堡垒机&#xff0c;是符合 4A 规范的专业运维安全审计系统。JumpS…