日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

17天代码 品优购_品优购(IDEA版)-第一天

發(fā)布時(shí)間:2024/9/30 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 17天代码 品优购_品优购(IDEA版)-第一天 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

品優(yōu)購(gòu)(IDEA版)-第一天

品優(yōu)購(gòu)IDEA版應(yīng)該是2019年的新項(xiàng)目。目前只有視頻。資料其他都還是舊的。

1.學(xué)習(xí)目標(biāo)

1:了解電商行業(yè)特點(diǎn)以及理解電商的模式

2:了解整體品優(yōu)購(gòu)的架構(gòu)特點(diǎn)

3:能夠運(yùn)用 Dubbo+SSM 搭建分布式應(yīng)用

4:搭建工程框架,完成品牌列表后端代碼

2. 電商概述

3. 品優(yōu)購(gòu)需求分析與設(shè)計(jì)

3.1. 品優(yōu)購(gòu)簡(jiǎn)介

品優(yōu)購(gòu)商城主要分為網(wǎng)站前臺(tái)、網(wǎng)站后臺(tái)、商家后臺(tái)三類系統(tǒng)。

3.1.1. 網(wǎng)站前臺(tái)

主要包括網(wǎng)站首頁(yè)、商家首頁(yè)、商品詳情、搜索、會(huì)員中心、訂單與支付相關(guān)頁(yè)面、秒殺頻道等。

在這里插入圖片描述

3.1.2. 網(wǎng)站后臺(tái)

運(yùn)營(yíng)該電商平臺(tái)的運(yùn)營(yíng)人員的管理后臺(tái)。 主要包括商家審核、品牌管理、規(guī)格管理、模板管理、商品分類管理、商品審核、廣告類型管理、廣告管理、訂單查詢、商家結(jié)算等。

在這里插入圖片描述

3.1.3. 商家管理后臺(tái)

加入了該電商平臺(tái)的商家進(jìn)行管理的后臺(tái),主要功能是對(duì)商品的管理以及訂單查詢統(tǒng)計(jì)、資金結(jié)算等功能。

在這里插入圖片描述

3.2. 系統(tǒng)架構(gòu)

3.2.1. SOA 架構(gòu)

在這里插入圖片描述

在這里插入圖片描述

3.2.2. 品優(yōu)購(gòu)架構(gòu)分析

在這里插入圖片描述

3.3. 數(shù)據(jù)庫(kù)表結(jié)構(gòu)

在這里插入圖片描述

在這里插入圖片描述

3.4. 項(xiàng)目框架

品優(yōu)購(gòu)采用當(dāng)前流行的前后端分離架構(gòu)。后端框架采用 Spring + Spring MVC +

Mybatis +Dubbo。前端采用 angularJS + Bootstrap。

4. 分布式服務(wù)框架 Dubbo

4.1. DUBBO 簡(jiǎn)介

DUBBO 是一個(gè)分布式服務(wù)框架,致力于提供高性能和透明化的 RPC 遠(yuǎn)程服 務(wù)調(diào)用方案,是阿里巴巴

SOA(Service-Oriented Architecture,SOA,面向服務(wù)架構(gòu)) 服務(wù)化治理方案的核心框架,每天為

2,000+個(gè)服務(wù)提供 3,000,000,000+次訪問(wèn)量

支持,并被廣泛應(yīng)用于阿里巴巴集團(tuán)的各成員站點(diǎn)。官網(wǎng)地址:http://dubbo.io/

4.1.1 DUBBO 架構(gòu)

在這里插入圖片描述

節(jié)點(diǎn)角色說(shuō)明:

英文名

節(jié)點(diǎn)角色說(shuō)明

Provider

暴露服務(wù)的服務(wù)提供方。

Consumer

調(diào)用遠(yuǎn)程服務(wù)的服務(wù)消費(fèi)方。

Registry

服務(wù)注冊(cè)與發(fā)現(xiàn)的注冊(cè)中心。

Monitor

統(tǒng)計(jì)服務(wù)的調(diào)用次調(diào)和調(diào)用時(shí)間的監(jiān)控中心。

Container

服務(wù)運(yùn)行容器。

調(diào)用關(guān)系說(shuō)明:

服務(wù)容器負(fù)責(zé)啟動(dòng),加載,運(yùn)行服務(wù)提供者。

服務(wù)提供者在啟動(dòng)時(shí),向注冊(cè)中心注冊(cè)自己提供的服務(wù)。

服務(wù)消費(fèi)者在啟動(dòng)時(shí),向注冊(cè)中心訂閱自己所需的服務(wù)。

注冊(cè)中心返回服務(wù)提供者地址列表給消費(fèi)者,如果有變更,注冊(cè)中心將基于長(zhǎng)

連接推送變更數(shù)據(jù)給消費(fèi)者。

服務(wù)消費(fèi)者,從提供者地址列表中,基于軟負(fù)載均衡算法,選一臺(tái)提供者進(jìn)行

調(diào)用,如果調(diào)用失敗,再選另一臺(tái)調(diào)用。

服務(wù)消費(fèi)者和提供者,在內(nèi)存中累計(jì)調(diào)用次數(shù)和調(diào)用時(shí)間,定時(shí)每分鐘發(fā)送一

次統(tǒng)計(jì)數(shù)據(jù)到監(jiān)控中心。

【軟負(fù)載均衡】軟件負(fù)載均衡則是通過(guò)在服務(wù)器上安裝的特定的負(fù)載均衡軟件或是自帶負(fù)載均衡模塊完成對(duì)請(qǐng)求的分配派發(fā)。如:輪詢法、隨機(jī)法、源地址哈希 法、最小連接數(shù)法等。在消費(fèi)方中聲明服務(wù)的時(shí)候可以指定負(fù)載均衡的策略, dubbo 在返回的服務(wù)地址列表中使用負(fù)載均衡策略選擇一個(gè)服務(wù)地址;默認(rèn)是使 用隨機(jī)法。

4.2. 注冊(cè)中心 zookeeper

4.2.1. zookeeper 簡(jiǎn)介

官方推薦使用 zookeeper 注冊(cè)中心。注冊(cè)中心負(fù)責(zé)服務(wù)地址的注冊(cè)與查找,相當(dāng)于目錄服務(wù),服務(wù)提供者和消費(fèi)者只在啟動(dòng)時(shí)與注冊(cè)中心交互,注冊(cè)中心不轉(zhuǎn)發(fā)請(qǐng)求,壓力較小。

zookeeper 是 Apacahe Hadoop 的子項(xiàng)目,是一個(gè)樹型的目錄服務(wù),支持變更推送,適合作為 Dubbo 服務(wù)的注冊(cè)中心,工業(yè)強(qiáng)度較高,可用于生產(chǎn)環(huán)境。

zooKeeper 用來(lái)做 dubbo 的注冊(cè)中心,也即哪一個(gè)服務(wù)由哪一臺(tái)機(jī)器來(lái)提供

必需讓調(diào)用者知道,簡(jiǎn)單來(lái)說(shuō)就是 ip 地址和服務(wù)名稱的對(duì)應(yīng)關(guān)系。

4.2.2. 準(zhǔn)備 Linux 環(huán)境

導(dǎo)入的虛擬機(jī)必須設(shè)置 ip 為 192.168.25.168 才可以使用 FastDFS(后面的課程會(huì)

用);如果虛擬機(jī)不是 25 網(wǎng)段,需要手動(dòng)設(shè)置網(wǎng)段,設(shè)置方式如下圖:

因?yàn)槌酥挥幸曨l是新的,軟件資源其實(shí)都還是舊的,所以其實(shí)是需要使用25網(wǎng)段

在這里插入圖片描述

在這里插入圖片描述

4.2.3. VMWare 中打開虛擬機(jī)

找到下發(fā)的虛擬機(jī)文件夾“pinyougou”;導(dǎo)入 VMWare 內(nèi),步驟如下:

在這里插入圖片描述

如果出現(xiàn)彈出框;那么選擇 我已移動(dòng)該虛擬機(jī)

4.2.4. 啟動(dòng)虛擬機(jī)

在這里插入圖片描述

上述安裝的 CentOS7 64 位系統(tǒng);

帳號(hào):root,密碼:itcast

【注意】如果啟動(dòng)后無(wú)法在 windows 中使用工具連接(systemctl start

network.service 命令可以查看狀態(tài));那么可以在 centos 中重啟網(wǎng)絡(luò);輸入如下

命令:

systemctl stop NetworkManager

systemctl restart network.service

進(jìn)入桌面后,右擊進(jìn)入terminal輸入ifconfig,查看ip

ifconfig

在這里插入圖片描述

4.2.5. Linux 中安裝 zookeeper

將zookeeper-3.4.6.tar.gz上傳到服務(wù)器的/root/目錄下

在這里插入圖片描述

解壓

tar -zxvf zookeeper-3.4.6.tar.gz

進(jìn)入zookeeper-3.4.6目錄。創(chuàng)建data文件夾

在這里插入圖片描述

進(jìn)入conf(配置)文件夾,重命名zoo_sample.cfg為zoo.cfg。修改zoo.cfg文件。

在這里插入圖片描述

在這里插入圖片描述

進(jìn)入bin文件夾,啟動(dòng)zookeeper

在這里插入圖片描述

在這里插入圖片描述

4.3. 監(jiān)控中心 Monitor

在開發(fā)時(shí),需要知道注冊(cè)中心都注冊(cè)了哪些服務(wù),以便我們開發(fā)和測(cè)試??梢酝ㄟ^(guò)部署一個(gè)監(jiān)控中心來(lái)實(shí)現(xiàn)。其實(shí)監(jiān)控中心就是一個(gè) web 應(yīng)用,部署到tomcat 即可。

在這里插入圖片描述

上傳tomcat與dubbo-admin到服務(wù)器

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

5. IDEA 開發(fā)環(huán)境設(shè)置

5.1. 創(chuàng)建 IDEA 工程

在這里插入圖片描述

或者

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

6. 品優(yōu)購(gòu)-框架搭建

6.1. 工程結(jié)構(gòu)說(shuō)明

開發(fā)完成后的工程結(jié)構(gòu)如下:

在這里插入圖片描述

模塊名

工程說(shuō)明

pinyougou-parent

聚合父工程

pinyougou-pojo

通用實(shí)體類

pinyougou-dao

通用實(shí)體類

pinyougou-xxx

業(yè)務(wù)服務(wù)層工程

pinyougou-xxx-interface

業(yè)務(wù)服務(wù)層接口

pinyougou-xxx-service

業(yè)務(wù)服務(wù)層實(shí)現(xiàn)(web 工程)

pinyougou-xxx-web

展現(xiàn)(控制)層工程(web 工程)

6.2. 創(chuàng)建數(shù)據(jù)庫(kù)表

在導(dǎo)入的虛擬機(jī)里面已經(jīng)有使用 mysql 5.7 的數(shù)據(jù)庫(kù)名稱為:pinyougoudb,

mysql5.7 的用戶名和密碼都為:root。

另外;也可以自行創(chuàng)建數(shù)據(jù)庫(kù),將“資料/database/pinyougoudb.sql”導(dǎo)入。

6.3. 創(chuàng)建工程&添加依賴

6.3.1. pinyougou

品優(yōu)購(gòu)聚合父工程;包括后續(xù)開發(fā)的所有品優(yōu)購(gòu)聚合子工程。主要功能是進(jìn)行依賴、插件統(tǒng)一管理。

6.3.1.1. 創(chuàng)建

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

6.3.1.2. 依賴

后續(xù)的文中出現(xiàn)依賴表示修改當(dāng)前項(xiàng)目的 pom.xml 文件

xmlns="http://maven.apache.org/POM/4.0.0"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.pinyougou

pinyougou

pom

1.0-SNAPSHOT

4.12

4.3.10.RELEASE

4.2.3.RELEASE

3.4.5

1.3.1

5.1.32

1.1.5

5.1.2

3.5.0

2.6.0

1.7.12

1.0

1.2.44

3.4.9

0.1

2.9.0

1.8.9.RELEASE

2.5

1.3.1

1.25

2.3.23

5.14.3

3.4.1

1.5.5.RELEASE

4.5.3

0.0.3

4.4.8

3.12.1.GA

1.11

1.6.1

2.0.2

2.3.2

junit

junit

${junit.version}

org.springframework

spring-beans

${spring.version}

org.springframework

spring-context

${spring.version}

org.springframework

spring-web

${spring.version}

org.springframework

spring-aspects

${spring.version}

org.springframework

spring-jdbc

${spring.version}

org.springframework

spring-webmvc

${spring.version}

org.springframework

spring-jms

${spring.version}

org.springframework

spring-context-support

${spring.version}

org.springframework

spring-test

${spring.version}

org.mybatis

mybatis

${mybatis.version}

org.mybatis

mybatis-spring

${mybatis.spring.version}

org.slf4j

slf4j-log4j12

${slf4j.version}

com.alibaba

dubbo

${dubbo.version}

org.apache.zookeeper

zookeeper

${zookeeper.version}

com.github.sgroschupf

zkclient

${zkclient.version}

com.alibaba

fastjson

${fastjson.version}

javax.servlet

servlet-api

${servlet.api.version}

provided

com.github.pagehelper

pagehelper

${pagehelper.version}

tk.mybatis

mapper

${mapper.version}

mysql

mysql-connector-java

${mysql.version}

com.alibaba

druid

${druid.version}

javax.persistence

persistence-api

${javax.persistence.version}

redis.clients

jedis

${jedis.version}

org.springframework.data

spring-data-redis

${spring.data.redis.version}

commons-fileupload

commons-fileupload

${commons.fileupload.version}

fastdfs_client

fastdfs_client

${fastdfs.client.version}

org.freemarker

freemarker

${freemarker.version}

org.apache.activemq

activemq-client

${activemq.version}

org.springframework.security

spring-security-web

${spring.security.version}

org.springframework.security

spring-security-config

${spring.security.version}

org.springframework.security

spring-security-cas

${spring.security.version}

org.jasig.cas.client

cas-client-core

${cas.client.core.version}

org.slf4j

log4j-over-slf4j

org.springframework.data

spring-data-solr

${spring.data.solr.version}

org.apache.httpcomponents

httpclient

${httpclient.version}

com.github.wxpay

wxpay-sdk

${wxpay.sdk.version}

com.github.penggle

kaptcha

${kaptcha.version}

javax.servlet

javax.servlet-api

commons-codec

commons-codec

${commons.codec.version}

javassist

javassist

${javassist.version}

dom4j

dom4j

${dom4j.version}

xml-apis

xml-apis

${xml.apis.version}

org.apache.maven.plugins

maven-compiler-plugin

3.6.0

1.8

1.8

UTF-8

org.apache.tomcat.maven

tomcat7-maven-plugin

2.2

6.3.2. pinyougou-common

通用工具類工程;放置其它工程經(jīng)常使用的工具類或者組件。

6.3.2.1. 創(chuàng)建

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

6.3.2.2. 依賴

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">

pinyougou

com.pinyougou

1.0-SNAPSHOT

4.0.0

pinyougou-common

6.3.3. pinyougou-pojo

實(shí)體類工程;統(tǒng)一放置品優(yōu)購(gòu)的所有數(shù)據(jù)庫(kù)實(shí)體類或者其它領(lǐng)域模型。

6.3.3.1. 創(chuàng)建

創(chuàng)建 pinyougou 的子模塊工程,與 pinyougou-common 的創(chuàng)建方式類似;后面的若是pinyougou 的子模塊工程的創(chuàng)建也都如此;不再每一步都截圖了。

在這里插入圖片描述

在這里插入圖片描述

6.3.3.2. 依賴

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">

pinyougou

com.pinyougou

1.0-SNAPSHOT

4.0.0

pinyougou-pojo

javax.persistence

persistence-api

org.springframework.data

spring-data-solr

6.3.4. pinyougou-dao

數(shù)據(jù)庫(kù)通用訪問(wèn)層工程;放置 Mybatis 中對(duì)應(yīng)于數(shù)據(jù)庫(kù)操作的所有 Mapper 接口類。

6.3.4.1. 創(chuàng)建

在這里插入圖片描述

在這里插入圖片描述

6.3.4.2. 依賴

xmlns="http://maven.apache.org/POM/4.0.0"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

pinyougou

com.pinyougou

1.0-SNAPSHOT

4.0.0

pinyougou-dao

com.pinyougou

pinyougou-pojo

1.0-SNAPSHOT

org.springframework

spring-beans

org.springframework

spring-jdbc

org.mybatis

mybatis

org.mybatis

mybatis-spring

com.github.pagehelper

pagehelper

tk.mybatis

mapper

mysql

mysql-connector-java

com.alibaba

druid

org.slf4j

slf4j-log4j12

6.3.5. pinyougou-sellergoods

商家商品服務(wù)工程;該工程主要是對(duì)應(yīng)于商品、商家、品牌、規(guī)格、商品分類等

的服務(wù)提供,由 pinyougou-sellergoods-interface 和 pinyougou-sellergoods-service構(gòu)成。

6.3.5.1. 創(chuàng)建

在這里插入圖片描述

在這里插入圖片描述

6.3.5.2. 依賴

無(wú)需改動(dòng)。

6.3.6. pinyougou-sellergoods-interface

6.3.6.1. 創(chuàng)建

注意這個(gè)工程是 pinyougou-sellergoods 的聚合子工程。

在這里插入圖片描述

在這里插入圖片描述

6.3.6.2. 依賴

xmlns="http://maven.apache.org/POM/4.0.0"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

pinyougou-sellergoods

com.pinyougou

1.0-SNAPSHOT

4.0.0

pinyougou-sellergoods-interface

com.pinyougou

pinyougou-pojo

1.0-SNAPSHOT

6.3.7. pinyougou-sellergoods-service

6.3.7.1. 創(chuàng)建

注意這個(gè)工程是 pinyougou-sellergoods 的聚合子工程。

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

安裝插件JBLJavaToWeb

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

6.3.7.3. 依賴

xmlns="http://maven.apache.org/POM/4.0.0"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

pinyougou-sellergoods

com.pinyougou

1.0-SNAPSHOT

4.0.0

pinyougou-sellergoods-service

war

com.pinyougou

pinyougou-sellergoods-interface

1.0-SNAPSHOT

com.pinyougou

pinyougou-dao

1.0-SNAPSHOT

org.springframework

spring-beans

org.springframework

spring-context

org.springframework

spring-web

org.springframework

spring-aspects

com.alibaba

dubbo

org.apache.zookeeper

zookeeper

com.github.sgroschupf

zkclient

com.alibaba

fastjson

com.pinyougou

pinyougou-common

1.0-SNAPSHOT

org.apache.tomcat.maven

tomcat7-maven-plugin

/

9000

6.3.8. pinyougou-manage-web

6.3.8.1. 創(chuàng)建

在這里插入圖片描述

在這里插入圖片描述

6.3.8.2. 轉(zhuǎn)換為 web 工程

在這里插入圖片描述

在這里插入圖片描述

6.3.8.3. 依賴

xmlns="http://maven.apache.org/POM/4.0.0"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

pinyougou

com.pinyougou

1.0-SNAPSHOT

4.0.0

pinyougou-manage-web

war

com.pinyougou

pinyougou-sellergoods-interface

1.0-SNAPSHOT

org.springframework

spring-webmvc

org.slf4j

slf4j-log4j12

com.alibaba

dubbo

org.apache.zookeeper

zookeeper

com.github.sgroschupf

zkclient

com.alibaba

fastjson

javax.servlet

servlet-api

provided

org.apache.tomcat.maven

tomcat7-maven-plugin

/

9100

6.4. 整合工程

6.4.1. pinyougou-dao

6.4.1.1. applicationContext-dao.xml

添加

pinyougou\pinyougou-dao\src\main\resources\spring\applicationContext-dao.xml

內(nèi)容如下:

在這里插入圖片描述

xmlns:context="http://www.springframework.org/schema/context"

xmlns="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context.xsd">

destroy-method="close">

6.4.1.2. mybatis-config.xml

添加

pinyougou\pinyougou-dao\src\main\resources\mybatis\mybatis-config.xml

內(nèi)容如下:

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

6.4.1.3. db.properties

添加

pinyougou\pinyougou-dao\src\main\resources\properties\db.properties

內(nèi)容如下:

jdbc.driver=com.mysql.jdbc.Driver

#下面的按照自己實(shí)際的填寫。如果連接服務(wù)器的mysql,就填寫你服務(wù)器的ip。如果連接的是本地的mysql,就填寫localhost

jdbc.url=jdbc:mysql://192.168.25.128:3306/pinyougoudb?useUnicode=true&characterEncoding=utf8&autoReconnect=true

jdbc.username=root

jdbc.password=root

6.4.1.4. log4j.properties

添加

pinyougou\pinyougou-dao\src\main\resources\log4j.properties

內(nèi)容如下:

log4j.rootLogger=DEBUG,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n

6.4.2. pinyougou-sellergoods-service

6.4.2.1. applicationContext-service.xml

添加

pinyougou-sellergoods-service\src\main\resources\spring\applicationContext

service.xml

內(nèi)容如下:

xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

xmlns="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

6.4.2.2. web.xml

修改pinyougou-sellergoods-service\src\main\webapp\WEB-INF\web.xml內(nèi)容如下:

xmlns="http://java.sun.com/xml/ns/javaee"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

version="2.5">

org.springframework.web.context.ContextLoaderListener

contextConfigLocation

classpath*:spring/applicationContext*.xml

6.4.3. pinyougou-manage-web

6.4.3.1. springmvc.xml

添加

pinyougou\pinyougou-manage-web\src\main\resources\spring\springmvc.xml

內(nèi)容如下:

xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

xmlns:mvc="http://www.springframework.org/schema/mvc"

xmlns="http://www.springframework.org/schema/beans"

xsi:schemaLocation="http://www.springframework.org/schema/beans

http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/mvc

http://www.springframework.org/schema/mvc/spring-mvc.xsd

http://code.alibabatech.com/schema/dubbo

http://code.alibabatech.com/schema/dubbo/dubbo.xsd">

6.4.3.2. log4j.properties

添加

pinyougou\pinyougou-manage-web\src\main\resources\log4j.properties

內(nèi)容如下:

log4j.rootLogger=DEBUG,stdout

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n

6.4.3.3. web.xml

修改

pinyougou\pinyougou-manage-web\src\main\webapp\WEB-INF\web.xml

內(nèi)容如下:

xmlns="http://java.sun.com/xml/ns/javaee"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

version="2.5">

CharacterEncodingFilter

org.springframework.web.filter.CharacterEncodingFilter

encoding

utf-8

forceEncoding

true

CharacterEncodingFilter

/*

springmvc

org.springframework.web.servlet.DispatcherServlet

contextConfigLocation

classpath:spring/springmvc.xml

1

springmvc

*.do

6.4.4. 引入品優(yōu)購(gòu)實(shí)體類

在 pinyougou-pojo 工程創(chuàng)建 com.pinyougou.pojo 包;然后將“資料/pojo”下的所有

實(shí)體類復(fù)制到上述創(chuàng)建的包中。

在這里插入圖片描述

7. 查詢品牌列表數(shù)據(jù)

7.1. 需求分析

7.2. 數(shù)據(jù)庫(kù)表

在這里插入圖片描述

7.3. 后端代碼

7.3.1. BrandMapper 接口

添加

pinyougou-dao\src\main\java\com\pinyougou\mapper\BrandMapper.java

內(nèi)容如下:

package com.pinyougou.mapper;

import com.pinyougou.pojo.TbBrand;

import java.util.List;

public interface BrandMapper {

List queryAll();

}

7.3.2. BrandMapper.xml 配置文件

添加

pinyougou-dao\src\main\resources\com\pinyougou\mapper\BrandMapper.xml

內(nèi)容如下:

/p>

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

SELECT *

FROM tb_brand

7.3.3. BrandService 接口

添加

pinyougou-sellergoods\pinyougou-sellergoods

interface\src\main\java\com\pinyougou\sellergoods\service\BrandService.java

內(nèi)容如下:

package com.pinyougou.sellergoods.service;

import com.pinyougou.pojo.TbBrand;

import java.util.List;

public interface BrandService {

public List queryAll();

}

7.3.4. BrandServiceImpl 實(shí)現(xiàn)類

添加

pinyougou-sellergoods\pinyougou-sellergoods

service\src\main\java\com\pinyougou\sellergoods\service\impl\BrandServiceImpl.ja

va

內(nèi)容如下:

package com.pinyougou.sellergoods.service.impl;

import java.util.List;

import com.pinyougou.mapper.BrandMapper;

import com.pinyougou.sellergoods.service.BrandService;

import org.springframework.beans.factory.annotation.Autowired;

import com.alibaba.dubbo.config.annotation.Service;

import com.pinyougou.pojo.TbBrand;

/**

* 注意:該Service注解是alibaba的,不是spring的

*/

@Service(interfaceClass = BrandService.class)

public class BrandServiceImpl implements BrandService {

@Autowired

private BrandMapper brandMapper;

@Override

public List queryAll() {

return brandMapper.queryAll();

}

}

7.3.5. BrandController 處理器

添加

pinyougou-manage

web\src\main\java\com\pinyougou\manage\controller\BrandController.java

內(nèi)容如下:

package com.pinyougou.manage.controller;

import java.util.List;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import com.alibaba.dubbo.config.annotation.Reference;

import com.pinyougou.pojo.TbBrand;

import com.pinyougou.sellergoods.service.BrandService;

@RestController

@RequestMapping("/brand")

public class BrandController {

@Reference

private BrandService brandService;

@RequestMapping("/findAll")

public List findAll(){

return brandService.queryAll();

}

}

7.4. 安裝工程

點(diǎn)擊 IDEA 最右邊的“Maven Projects”

在這里插入圖片描述

在這里插入圖片描述

7.5. 啟動(dòng)

7.5.1. 啟動(dòng) pinyougou-sellergoods-service

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

7.5.2. 啟動(dòng) pinyougou-manage-web

這個(gè)啟動(dòng)與 pinyougou-sellergoods-service 的啟動(dòng)配置是一樣的;不在贅述圖。

在這里插入圖片描述

7.6. 測(cè)試

打開 chrome 瀏覽器;輸入:http://localhost:9100/brand/findAll.do

在這里插入圖片描述

8. Git 管理代碼

9. 常見問(wèn)題

9.2. Mybatis 中查詢語(yǔ)句找不到

org.springframework.web.util.NestedServletException: Request processing failed;

nested exception is java.lang.RuntimeException:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

com.pinyougou.mapper.BrandMapper.queryAll

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found):

com.pinyougou.mapper.BrandMapper.queryAll

在 IDEA 中檢查 resources 文件夾中 com.pinyougou.mapper 是不是已經(jīng)變成了

一個(gè)目錄;真正的是三級(jí)目錄,只是在 IDEA 上看不太出區(qū)別。請(qǐng)創(chuàng)建的時(shí)候

創(chuàng)建 package 方 式 創(chuàng) 建 則 不 會(huì) 出 現(xiàn) 了 ; 不 管 如 何 請(qǐng) 保 證

resources/com/pinyougou/mapper 目錄的存在

以上為第一天內(nèi)容,視頻參考Java 品優(yōu)購(gòu)互聯(lián)網(wǎng)商城 項(xiàng)目實(shí)戰(zhàn)(基于IDEA)新版。因?yàn)榈谝惶焓菦]有視頻的,是基于這份pdf講義實(shí)現(xiàn)的。然而這份pdf講義也有很多錯(cuò)誤,有的是因?yàn)橘Y源是舊的,不兼容,還有的是直接是里面代碼的錯(cuò)誤導(dǎo)致的bug。以上我博客的內(nèi)容基本是花了時(shí)間排除了錯(cuò)誤后的實(shí)現(xiàn)。所以有些地方會(huì)與講義不同。

在這里插入圖片描述

第一天內(nèi)容我寫了思維導(dǎo)圖,打開有點(diǎn)慢。

博客內(nèi)容中,如果我有哪些沒有講清楚或者實(shí)現(xiàn)中遇到了哪些問(wèn)題,請(qǐng)?jiān)谠u(píng)論中留言,我看到會(huì)盡快回復(fù)的,或者其他小伙伴看到也會(huì)幫忙解決的。

第一天需要使用的資料hirr,或者不失效的

總結(jié)

以上是生活随笔為你收集整理的17天代码 品优购_品优购(IDEA版)-第一天的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。