目录

一、淘淘商城简介

二、功能介绍

三、系统架构

四、技术选型+开发环境

1.技术选型

2.开发工具和环境

五、创建公共工程

1.创建taotao-parent工程,用于统一版本号

2.创建taotao-common工程,将一些公用的类或者功能模块抽取出来已达到重用的目的

六、安装部署zookeeper

七、搭建后台系统

1.聚合工程分析

2.创建taotao-manager服务

3.创建taotao-manager-web表现层

4.加入依赖

5.添加​​​​​​​taotao-manager服务层配置文件

6.添加​​​​​​​taotao-manager-web表现层配置文件

7.我们使用dubbo实现服务的调用,需要为其添加配置。


​​​​​​​

一、淘淘商城简介

  1. 淘淘商城是一个综合性的B2C平台,类似京东商城、天猫。
  2. 会员可以在商城浏览商品、下单、以及参加各种活动。
  3. 商家可以入住淘淘商城,在该平台上开店出售自己的商品、并且得到淘淘商城的可靠服务。
  4. 管理员、运营可以在平台的后台管理系统中管理商品、订单、会员等
  5. 客服可以在后台管理系统中处理用户的询问以及投诉

二、功能介绍

后台管理系统:提供商品管理、类目选择以及内容发布等功能。

前台系统:提供用户注册、用户登录、浏览商品、首页(门户)、下单等功能。

搜索系统:提供商品的搜索功能。

三、系统架构

四、技术选型+开发环境

1.技术选型

  • Spring、SpringMVC、Mybatis
  • JSP、JSTL、jQuery、EasyUI、KindEditor(富文本编辑器)
  • Redis(缓存服务器)
  • Solr(搜索)
  • dubbo(分布式服务框架)
  • ActiveMQ(消息队列)
  • FastDFS(图片服务器)
  • Nginx(反向代理服务器)

2.开发工具和环境

  • Eclipse  2019-03 (4.11.0)
  • 自带maven插件,手工安装properties插件
  • Maven 3.3.9
  • 使用开发工具(eclipse)自带的Maven
  • Tomcat 7.0.47(Maven Tomcat Plugin)
  • JDK 1.7
  • Mysql 5.5
  • Dubbo 2.5.3
  • Nginx 1.5.0
  • Redis 3.0.2
  • ActiveMQ 5.12.0

五、创建公共工程

1.创建taotao-parent工程,用于统一版本号

(1)创建Maven Project

(2)编写pom文件

<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.taotao</groupId><artifactId>taotao-parent</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><!-- 集中定义依赖版本号 --><properties><junit.version>4.12</junit.version><spring.version>4.1.3.RELEASE</spring.version><mybatis.version>3.2.7</mybatis.version><mybatis.spring.version>1.2.2</mybatis.spring.version><mybatis.paginator.version>1.2.15</mybatis.paginator.version><mysql.version>5.1.32</mysql.version><slf4j.version>1.6.4</slf4j.version><jackson.version>2.4.2</jackson.version><druid.version>1.0.9</druid.version><jolbox.version>0.8.0.RELEASE</jolbox.version><jstl.version>1.2</jstl.version><servlet-api.version>2.5</servlet-api.version><jsp-api.version>2.0</jsp-api.version><joda-time.version>2.5</joda-time.version><commons-lang3.version>3.3.2</commons-lang3.version><commons-io.version>1.3.2</commons-io.version><commons-net.version>3.3</commons-net.version><pagehelper.version>3.7.5</pagehelper.version><mapper.version>2.3.4</mapper.version><jsqlparser.version>0.9.1</jsqlparser.version><commons-fileupload.version>1.3.1</commons-fileupload.version><commons-codec.version>1.9</commons-codec.version><jedis.version>2.7.2</jedis.version><solrj.version>4.10.3</solrj.version><dubbo.version>2.5.3</dubbo.version><zookeeper.version>3.4.7</zookeeper.version><zkclient.version>0.1</zkclient.version><activemq.version>5.12.0</activemq.version><freemarker.version>2.3.23</freemarker.version><quartz.version>2.2.2</quartz.version></properties><dependencies><!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency><!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.version}</version></dependency><!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>${mybatis.version}</version></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId><version>${mybatis.spring.version}</version></dependency><!-- 通用Mapper --><dependency><groupId>com.github.abel533</groupId><artifactId>mapper</artifactId><version>${mapper.version}</version></dependency><!-- 分页助手 --><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>${pagehelper.version}</version></dependency><dependency><groupId>com.github.jsqlparser</groupId><artifactId>jsqlparser</artifactId><version>${jsqlparser.version}</version></dependency><!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency><!-- 日志 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.version}</version></dependency><!-- Jackson Json处理工具包 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency><!-- 连接池 --><dependency><groupId>com.jolbox</groupId><artifactId>bonecp-spring</artifactId><version>${jolbox.version}</version></dependency><!-- JSP相关 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId><version>${jstl.version}</version></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>${servlet-api.version}</version><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><version>${jsp-api.version}</version><scope>provided</scope></dependency><!-- 时间操作组件 --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId><version>${joda-time.version}</version></dependency><!-- Apache工具组件 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>${commons-lang3.version}</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-io</artifactId><version>${commons-io.version}</version></dependency><!-- 文件上传组件 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${commons-fileupload.version}</version></dependency><!-- dubbo相关 --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>${dubbo.version}</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion><exclusion><groupId>org.jboss.netty</groupId><artifactId>netty</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>${zookeeper.version}</version></dependency><dependency><groupId>com.github.sgroschupf</groupId><artifactId>zkclient</artifactId><version>${zkclient.version}</version></dependency><!-- 加密解密 --><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>${commons-codec.version}</version></dependency><!-- 定时任务Quartz --><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>2.2.1</version></dependency><!-- ActiveMQ依赖 --><dependency><groupId>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>${activemq.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId><version>${spring.version}</version></dependency><!-- 静态化freemarker --><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>${freemarker.version}</version></dependency><!-- Redis客户端 --><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>${jedis.version}</version></dependency><!-- solr客户端 --><dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>${solrj.version}</version></dependency></dependencies><build><finalName>${project.artifactId}</finalName><plugins><!-- 资源文件拷贝插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.7</version><configuration><encoding>UTF-8</encoding></configuration></plugin><!-- java编译插件 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.2</version><configuration><source>1.7</source><target>1.7</target><encoding>UTF-8</encoding></configuration></plugin></plugins><pluginManagement><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.2</version></plugin></plugins></pluginManagement><resources><!-- 使用Maven部署的时候,xml和properties配置文件也一起部署到Tomcat --><resource><directory>src/main/java</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource><!-- 默认是以下配置 --><resource><directory>src/main/resources</directory><includes><include>**/*.properties</include><include>**/*.xml</include></includes><filtering>false</filtering></resource></resources></build>
</project>

2.创建taotao-common工程,将一些公用的类或者功能模块抽取出来已达到重用的目的

(1)创建Maven Project

六、安装部署zookeeper

请参照我的另一篇博客https://blog.csdn.net/qq_41401434/article/details/105494237,这里我们只配置单机模式就可以

七、搭建后台系统

1.聚合工程分析

(1)使用聚合工程搭建后台系统服务层:

taotao-manager 聚合工程的父工程,负责把所有子工程聚合在一起

taotao-manager-pojo 聚合工程的子工程,javaBean

taotao-manager-mapper 聚合工程的子工程,DAO层

taotao-manager-interface 聚合工程的子工程,业务处理层的接口

taotao-manager-service 聚合工程的子工程,业务处理层

(2)使用单独的Maven工程搭建后台系统表现层:

taotao-manager-web 单独的Maven工程,页面控制层

2.创建taotao-manager服务

(1)创建taotao-manager父工程

创建Maven Project

(2)创建taotao-manager-pojo子工程

创建Maven Module

(3)同样的创建taotao-manager-mapper子工程和taotao-manager-interface子工程

------图略------

(4)创建​​​​​​​taotao-manager-service子工程

注意这个是要发布在tomcat上运行,需要打war包,如图所示

然后右键该项目

选择标红的那个,用来生成web.xml文件。

3.​​​​​​​创建taotao-manager-web表现层

(1)创建Maven Project

(2)目前的结构如图:

4.加入依赖

四个子工程的依赖关系

service>>mapper>>pojo

service>>interface>>pojo

需要配置dubbo,配置taotao-manager-web的时候需要使用接口,需要taotao-manager-interface依赖

聚合工程应该是把所有工程聚合到一起再使用,所以需要把Tomcat插件加到taotao-manager父工程中

(1)​​​​​​​taotao-manager父工程pom文件

<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><parent><groupId>com.taotao</groupId><artifactId>taotao-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>com.taotao</groupId><artifactId>taotao-manager</artifactId><version>0.0.1-SNAPSHOT</version><packaging>pom</packaging><modules><module>taotao-manager-pojo</module><module>taotao-manager-mapper</module><module>taotao-manager-interface</module><module>taotao-manager-service</module></modules><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><!-- http://127.0.0.1:${port}/${path} --><port>80</port><path>/</path></configuration></plugin></plugins></build>
</project>

(2)​​​​​​​taotao-manager-pojo子工程pom文件

<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><parent><groupId>com.taotao</groupId><artifactId>taotao-manager</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>taotao-manager-pojo</artifactId>
</project>

(3)​​​​​​​taotao-manager-mapper子工程pom文件

<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><parent><groupId>com.taotao</groupId><artifactId>taotao-manager</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>taotao-manager-mapper</artifactId><dependencies><!-- taotao-manager-pojo依赖 --><dependency><groupId>com.taotao</groupId><artifactId>taotao-manager-pojo</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>

(4)​​​​​​​taotao-manager-interface子工程pom文件

<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><parent><groupId>com.taotao</groupId><artifactId>taotao-manager</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>taotao-manager-interface</artifactId><dependencies><!-- taotao-manager-pojo依赖 --><dependency><groupId>com.taotao</groupId><artifactId>taotao-manager-pojo</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>

(5)taotao-manager-service子工程pom文件

<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><parent><groupId>com.taotao</groupId><artifactId>taotao-manager</artifactId><version>0.0.1-SNAPSHOT</version></parent><artifactId>taotao-manager-service</artifactId><packaging>war</packaging><dependencies><!-- taotao-manager-interface依赖 --><dependency><groupId>com.taotao</groupId><artifactId>taotao-manager-interface</artifactId><version>0.0.1-SNAPSHOT</version></dependency><!-- taotao-manager-mapper依赖 --><dependency><groupId>com.taotao</groupId><artifactId>taotao-manager-mapper</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies>
</project>

(6)​​​​​​​​​​​​​​taotao-manager-web工程pom文件

<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><parent><groupId>com.taotao</groupId><artifactId>taotao-parent</artifactId><version>0.0.1-SNAPSHOT</version></parent><groupId>com.taotao</groupId><artifactId>taotao-manager-web</artifactId><version>0.0.1-SNAPSHOT</version><packaging>war</packaging><dependencies><!-- taotao-manager-interface依赖 --><dependency><groupId>com.taotao</groupId><artifactId>taotao-manager-interface</artifactId><version>0.0.1-SNAPSHOT</version></dependency></dependencies><build><plugins><!-- 配置Tomcat插件 --><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><port>8081</port><path>/</path></configuration></plugin></plugins></build>
</project>

5.添加​​​​​​​taotao-manager服务层配置文件

(1)配置文件结构

(2)SqlMapConfig.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration></configuration>

(3)jdbc.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/taotao?useUnicode=true&characterEncoding=utf8&autoReconnect=true
jdbc.username=root
jdbc.password=root

(4)applicationContext-dao.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置 读取properties文件 jdbc.properties --><context:property-placeholder location="classpath:resource/jdbc.properties" /><!-- 配置数据源 --><bean id="dataSource" class="com.jolbox.bonecp.BoneCPDataSource"destroy-method="close"><!-- 数据库驱动 --><property name="driverClass" value="${jdbc.driver}" /><!-- 相应驱动的jdbcUrl --><property name="jdbcUrl" value="${jdbc.url}" /><!-- 数据库的用户名 --><property name="username" value="${jdbc.username}" /><!-- 数据库的密码 --><property name="password" value="${jdbc.password}" /><!-- 检查数据库连接池中空闲连接的间隔时间,单位是分,默认值:240,如果要取消则设置为0 --><property name="idleConnectionTestPeriod" value="60" /><!-- 连接池中未使用的链接最大存活时间,单位是分,默认值:60,如果要永远存活设置为0 --><property name="idleMaxAge" value="30" /><!-- 每个分区最大的连接数 --><property name="maxConnectionsPerPartition" value="150" /><!-- 每个分区最小的连接数 --><property name="minConnectionsPerPartition" value="5" /></bean><!-- 配置SqlSessionFactory --><bean class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 配置数据源 --><property name="dataSource" ref="dataSource" /><!-- 加载MyBatis配置文件 --><property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml" /></bean><!-- 配置Mapper扫描 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- Mapper扫描包 --><property name="basePackage" value="com.taotao.manager.mapper" /></bean>
</beans>

(5)applicationContext-service.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置service扫描 --><context:component-scan base-package="com.taotao.manager.service" /><!-- 配置dubbo --><!-- 提供方应用信息,用于计算依赖关系 --><dubbo:application name="taotao-manager-service" /><!-- 使用zookeeper --><dubbo:registry protocol="zookeeper" address="192.168.37.161:2181" /><!-- 用dubbo协议在20880端口暴露服务 --><dubbo:protocol name="dubbo" port="20880" /><!-- 声明需要暴露的服务接口 --><dubbo:service interface="com.taotao.manager.service.TestService"ref="testServiceImpl" />
</beans>

(6)applicationContext-trans.xml

<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsdhttp://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsdhttp://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.0.xsd"><!-- 定义事务管理器 --><bean id="transactionManager"class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><property name="dataSource" ref="dataSource" /></bean><!-- 定义事务策略 --><tx:advice id="txAdvice" transaction-manager="transactionManager"><tx:attributes><!-- 传播行为 --><tx:method name="save*" propagation="REQUIRED" /><tx:method name="insert*" propagation="REQUIRED" /><tx:method name="add*" propagation="REQUIRED" /><tx:method name="create*" propagation="REQUIRED" /><tx:method name="delete*" propagation="REQUIRED" /><tx:method name="update*" propagation="REQUIRED" /><tx:method name="find*" propagation="SUPPORTS" read-only="true" /><tx:method name="select*" propagation="SUPPORTS" read-only="true" /><tx:method name="get*" propagation="SUPPORTS" read-only="true" /><tx:method name="query*" propagation="SUPPORTS" read-only="true" /></tx:attributes></tx:advice><aop:config><aop:pointcut id="myPointcut"expression="execution(* com.taotao.manager.service.*.*(..))" /><!--将定义好的事务处理策略应用到上述的切入点 --><aop:advisor advice-ref="txAdvice" pointcut-ref="myPointcut" /></aop:config>
</beans>

(7)log4j.properties

log4j.rootLogger=DEBUG,A1
log4j.logger.com.taotao = DEBUG
log4j.logger.org.mybatis = DEBUGlog4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n

(8)web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"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"id="MyWebApp" version="2.5"><display-name>taotao-manager</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 配置spring --><context-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/applicationContext-*.xml</param-value></context-param><!-- 配置spring的监听器 --><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener>
</web-app>

6.添加​​​​​​​taotao-manager-web表现层配置文件

(1)配置文件结构

(2)springmvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"xmlns:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsdhttp://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"><!-- 配置controller扫描 --><context:component-scan base-package="com.taotao.manager.controller" /><!-- 配置注解驱动 --><mvc:annotation-driven /><!-- 配置视图解析器 ,配置前缀和后缀 --><beanclass="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/views/" /><property name="suffix" value=".jsp" /></bean><!-- 配置dubbo服务 --><dubbo:application name="taotao-manager-web" /><!-- 使用广播 --><dubbo:registry protocol="zookeeper" address="192.168.37.161:2181" /><!-- 声明要调用的服务,timeout是设置连接超时最长时间,如果不设置,默认一秒超时,重试3次 --><dubbo:reference interface="com.taotao.manager.service.TestService"id="testService" timeout="1000000" />
</beans>

(3)web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"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"id="MyWebApp" version="2.5"><display-name>taotao-manager-web</display-name><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 解决POST乱码问题 --><filter><filter-name>encoding</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encoding</filter-name><url-pattern>/*</url-pattern></filter-mapping><!-- 配置springMVC前端控制器 --><servlet><servlet-name>taotao-manager-web</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><init-param><!-- springMVC全局配置文件 --><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param><!-- springmvc随着容器的启动而启动 --><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>taotao-manager-web</servlet-name><!-- 所有以rest开头的请求进入SpringMVC --><url-pattern>/rest/*</url-pattern></servlet-mapping>
</web-app>

7.我们使用dubbo实现服务的调用,需要为其添加配置。

(1)在配置文件头部配置dubbo约束,我们在代码中已经配置好

(2)加入dubbo.xsd约束文件(重要!!!不加无法使用dubbo)

我们加入约束文件后发现它并没有生效,我们需要手动导入他。

②window --> preferences

③点击File System选择下载好的dubbo.xsd文件

​​​​​​​

到这里为止,我们项目就算搭建完毕了,可以写一个小栗子测试Mapper层、Service层和Controller层是否是联通的,这里我们就不写了。

从零开始搭建分布式电商网站(2)--项目简介+工程搭建相关推荐

  1. 阿里云轻量应用服务器一键安装ECShop镜像搭建小型电商网站

    阿里云轻量应用服务器能够快捷安装ECShop镜像,搭建小型电商网站.下面来介绍如何使用轻量应用服务器的ECShop镜像搭建一个小型电商网站. 创建服务器 访问轻量应用服务器购买页面,选择ECShop镜 ...

  2. 深度解析大型分布式电商网站演变过程以及构架部署解决方案

    前言: 本文是学习大型分布式网站架构的技术总结.对架构一个高性能,高可用,可伸缩,可扩展的分布式网站进行了概要性描述,并给出一个架构参考.一部分为读书笔记,一部分是个人经验总结.对大型分布式网站架构有 ...

  3. 电商管理系统源码_Dubbo/SSM/Elasticsearch/Redis/MySQL搭建分布式电商购物商城

    关注本头条号@Java架构师技术栈分享转发文章之后私信回复[源码]即可免费获取到项目全部源码文档等! 基于SOA架构的分布式购物电商商城 后台管理系统:管理商品.订单.类目.商品规格属性.用户.权限. ...

  4. 电商网站架构探索|SOA分布式架构详解

    目前很多的企业都有自己的电商网站,但随着业务量的增长,并发量高了.由于平台架构的一些不足,会导致一系列严重的问题,电子商务平台的安全性,承受能力也经受着严峻的考验,而市面上绝大多数的电商网站是业务驱动 ...

  5. Django框架实现可运营电商网站(一)-- 后台部分

    文章目录 0 业务准备工作 0.1 产品需求描述 0.2 业务主体描述 0.3 业务逻辑描述 业务点 1.项目准备工作 1.1.创建项目(可用pycharm,也可使用命令,这里用命令行来演示) 1.2 ...

  6. 企业为什么要建立独立电商网站?

    虽然淘宝和京东拼多多等电商占据了中国电商网站的江山,但是也还是有很多的电商企业在做自己的电商网站.因为自己搭建的电商网站最终的流量可以在自己的网站交易.也少了平台的手续费和规则等,在运营和操作的适合可 ...

  7. 网站框架搭建——基于Django框架的天天生鲜电商网站项目系列博客(二)

    系列文章目录 需求分析--基于Django框架的天天生鲜电商网站项目系列博客(一) 网站框架搭建--基于Django框架的天天生鲜电商网站项目系列博客(二) 用户注册模块--基于Django框架的天天 ...

  8. 分布式电商项目五:使用人人开源搭建前后分离的后台管理系统

    分布式电商项目五:使用人人开源搭建前后分离的后台管理系统 现在我们开始搭建一个后台管理系统,使用的是码云上面的开源项目:人人开源 需要使用两个开源项目:fast和fast-vue. 使用git把需要的 ...

  9. 以电商网站为例,谈大型分布式架构设计与优化

    本文大纲: 1. 使用电商案例的原因 2. 电商网站需求 3. 网站初级架构 4. 系统容量估算 5. 网站架构分析 6. 网站架构优化 本文主题为电商网站架构案例,将介绍如何从电商网站的需求,到单机 ...

最新文章

  1. 再高深的 Python 面试难题,这门课都给你整得明明白白!
  2. 求n!,C(n,m)和A(n,m)最后的非零位。
  3. 使用 Go 实现生产者和消费者,Kafka 正式升级到 3.0!
  4. c语言掌上通,计算机二级C语言掌上通在哪下载安装?计算机掌上通好用吗?
  5. C++程序的单元测试
  6. 首次结算和汇总不一致处理方式总结
  7. Riot工程师:三步让你的游戏更新更快更小
  8. 可以提高千倍效率的Java代码小技巧
  9. mysql视图的更新 条件_MySQL进阶16 - 视图的创建/修改/删除/更新--可更新性的不适用条件...
  10. oracle 取时间的日期函数,Oracle日期函数简介
  11. 风哥Oracle数据库视频培训教程大合集(网盘下载.共18套)
  12. 爱普森针式打印机怎么连接计算机,爱普生针式打印机怎么安装 爱普生针式打印机安装步骤详解【图文】...
  13. hikaricp mysql_HikariCP 个人实例
  14. 计算机除数的时候怎么会有分数,在做除法运算时,为什么0不能做除数?
  15. 硬核拆台!宏彦获水,一脸懵逼:百度李彦宏遭当众泼水,一开始肇事者就在全程直播!!
  16. 门急诊排队叫号系统demo的基本实现
  17. amp; AMP; 会显示位 | Amp;aMp;amP;会原样显示
  18. NLP Python
  19. 计算机常用英语术语、词汇表
  20. dpdk实例flow_classify

热门文章

  1. php js显示文字个数,JS实现字数统计的功能
  2. click工具的使用
  3. Mac 一键关闭所有打开的程序
  4. 内蒙古大学计算机学院教授,张俊星教授
  5. iphone外屏碎了多少钱_苹果手机屏幕碎了换个外屏多少钱
  6. win7隐藏linux分区工具,Win7学院:隐藏磁盘分区方法汇总
  7. GC一些长时间停顿问题排查及解决办法
  8. 电商指纹浏览器价格如何,不同的价格对应什么功能
  9. Science最新:DeepMind部署自学AI,攻陷FPS“雷神之锤”
  10. 数字人民币 为经济添活力