javaee之黑马乐优商城1

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

javaee之黑马乐优商城1_第1张图片

 javaee之黑马乐优商城1_第2张图片

 javaee之黑马乐优商城1_第3张图片

javaee之黑马乐优商城1_第4张图片

 技术选型

javaee之黑马乐优商城1_第5张图片

开发环境

javaee之黑马乐优商城1_第6张图片

 域名测试

javaee之黑马乐优商城1_第7张图片

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

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

javaee之黑马乐优商城1_第8张图片

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

下面说一下关键目录结构

javaee之黑马乐优商城1_第9张图片

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

 javaee之黑马乐优商城1_第10张图片

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

javaee之黑马乐优商城1_第11张图片

 每个页面是如何找到的

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

javaee之黑马乐优商城1_第12张图片

下面看一下主体文件

javaee之黑马乐优商城1_第13张图片

主页面的一个修改

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

javaee之黑马乐优商城1_第14张图片

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

javaee之黑马乐优商城1_第15张图片

javaee之黑马乐优商城1_第16张图片

javaee之黑马乐优商城1_第17张图片 基本上来说前端页面就是这样进行修改的

整体的项目创建

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

javaee之黑马乐优商城1_第18张图片 采用无骨架方式创建一个父工程

引入下面依赖



    4.0.0

    com.leiyou.parent
    leiyou
    1.0.0-SNAPSHOT

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.1.RELEASE
         
    

    
        UTF-8
        UTF-8
        1.8
        Finchley.RC1
        1.3.2
        2.0.2
        1.1.9
        5.1.32
        1.2.3
        1.0.0-SNAPSHOT
        1.26.1-RELEASE
    

    
        
            
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                ${mybatis.starter.version}
            
            
            
                tk.mybatis
                mapper-spring-boot-starter
                ${mapper.starter.version}
            
            
            
                com.github.pagehelper
                pagehelper-spring-boot-starter
                ${pageHelper.starter.version}
            
            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            
            
            
                com.github.tobato
                fastdfs-client
                ${fastDFS.client.version}
            
        
    
    
    
        
            org.apache.commons
            commons-lang3
            3.4
        
        
            org.projectlombok
            lombok
        
    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
            
                false
            
        
    

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

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

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

javaee之黑马乐优商城1_第19张图片

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

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

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

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

javaee之黑马乐优商城1_第20张图片

 javaee之黑马乐优商城1_第21张图片

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

javaee之黑马乐优商城1_第22张图片

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

javaee之黑马乐优商城1_第23张图片

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

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

javaee之黑马乐优商城1_第24张图片

javaee之黑马乐优商城1_第25张图片

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

javaee之黑马乐优商城1_第26张图片

RestTemplate的用法

 

javaee之黑马乐优商城1_第27张图片 常用的方法如下:

javaee之黑马乐优商城1_第28张图片

 几个注解的作用

 javaee之黑马乐优商城1_第29张图片

 javaee之黑马乐优商城1_第30张图片

 javaee之黑马乐优商城1_第31张图片

 javaee之黑马乐优商城1_第32张图片

javaee之黑马乐优商城1_第33张图片

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

关于通用mapper的用法

javaee之黑马乐优商城1_第34张图片

在Eureka中出现找不到服务

javaee之黑马乐优商城1_第35张图片 javaee之黑马乐优商城1_第36张图片

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

javaee之黑马乐优商城1_第37张图片

javaee之黑马乐优商城1_第38张图片

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

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

javaee之黑马乐优商城1_第39张图片

 关于ribbon的配置

javaee之黑马乐优商城1_第40张图片

关于项目结构问题        

 javaee之黑马乐优商城1_第41张图片

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

javaee之黑马乐优商城1_第42张图片

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

javaee之黑马乐优商城1_第43张图片

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

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

ly-item

ly-registry

ly-gateway

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

javaee之黑马乐优商城1_第44张图片

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

javaee之黑马乐优商城1_第45张图片

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

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

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

它的作用如下

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

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

常见的http状态码

javaee之黑马乐优商城1_第46张图片

关于枚举类的一些说明

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

javaee之黑马乐优商城1_第47张图片

 解决域名映射问题

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

javaee之黑马乐优商城1_第48张图片

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

javaee之黑马乐优商城1_第49张图片

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

javaee之黑马乐优商城1_第50张图片

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

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

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

 javaee之黑马乐优商城1_第51张图片

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

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

javaee之黑马乐优商城1_第52张图片

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

javaee之黑马乐优商城1_第53张图片

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

javaee之黑马乐优商城1_第54张图片

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

javaee之黑马乐优商城1_第55张图片

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

javaee之黑马乐优商城1_第56张图片

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

 javaee之黑马乐优商城1_第57张图片

这是它的后端

javaee之黑马乐优商城1_第58张图片 javaee之黑马乐优商城1_第59张图片

你可能感兴趣的:(javaee,servlet,javaee)