17天代码 品优购_品优购(IDEA版)-第一天
品優(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)題。
- 上一篇: 关闭 启动_Steam如何关闭开机自动启
- 下一篇: 华农c语言计算高精度加法_考研计算机 |