01_DERAM商城项目设计与工程搭建

1.商城项目分析与设计

  • 附件:商城项目设计.pdf

2.技术选型和开发环境

2.1 技术选型
  • Spring、SpringMVC、Mybatis

  • JSP、JSTL、jQuery、EasyUI、KindEditor(富文本编辑器)

  • Redis(缓存服务器,单点登录,购物车)

  • Solr(搜索)

  • dubbo(分布式服务框架)HttpClient(HTTP 协议访问客户端)

  • ActiveMQ(消息队列)

  • Quartz(定时任务)

  • FastDFS(图片服务器)

  • FreeMarker(网页静态化)

  • Nginx(反向代理服务器)

  • MyCat(数据库中间件)

5.5 开发环境

  • IntelliJ IDEA 2019.2.2 x64

  • Maven 3.3.9

  • Tomcat 7.0.92(Maven Tomcat Plugin)

  • JDK 1.8

  • Mysql 5.7

  • Dubbo 2.5.3

  • Nginx 1.8.0

  • Redis 3.0.0

  • ActiveMQ 5.13.0

  • Win10 操作系统

  • GIT(版本管理)


3.工程搭建

3.1 使用Maven搭建工程
  • 好处

    • 管理jar包
    • 管理工程之间的依赖关系
    • 自动打包
    • 统一版本控制
  • 工程分析的结构(根据功能模块会搭建很多工程,先搭建后台管理工程)

    • Maven的常见打包方式

      • jar:java工程
      • war:web工程
      • pom:聚合工程(可以包含子工程)
    • 结构

      • dream_parent:dream商城的父工程,pom,管理整个项目的统一的版本号,所有项目都继承它

        • dream_common:通用的工具类的工程,通用的类型pojo,工具util,jar
        • dream_manager:后台管理服务层工程。pom
          • dream_manager_pojo:后台管理的pojo类型 jar
          • dream_manager_dao:dao层,为service提供接口 jar
          • dream_manager_interface:接口工程 jar
          • dream_manager_service:提供服务的业务层工程 war(为了方便发布服务)
        • dream_manager_web:后台管理的表现层,调用所有关于后台操作的业务层服务war

      结构不要弄错!!!

3.2 工程搭建
  • dream_parent
    • 新建一个空project,取名为dream

    • new->module->Maven

    • 填写名称:dream_parent

    • next->finish

    • 编辑pom.xml,更改打包方式为pom

    • 添加jar包依赖和版本控制–pom.xml

      <?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.dream</groupId><artifactId>dream_parent</artifactId><version>1.0-SNAPSHOT</version><packaging>pom</packaging><!-- 集中定义依赖版本号 --><properties><junit.version>4.12</junit.version><spring.version>4.2.4.RELEASE</spring.version><mybatis.version>3.2.8</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><httpclient.version>4.3.5</httpclient.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.4.2-fix</pagehelper.version><jsqlparser.version>0.9.1</jsqlparser.version><commons-fileupload.version>1.3.1</commons-fileupload.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.13.0</activemq.version><freemarker.version>2.3.23</freemarker.version><quartz.version>2.2.2</quartz.version></properties><dependencyManagement><dependencies> <!-- 时间操作组件 --><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>commons-io</groupId><artifactId>commons-io</artifactId><version>${commons-io.version}</version></dependency><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>${commons-net.version}</version></dependency> <!-- Jackson Json处理工具包 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>${jackson.version}</version></dependency> <!-- httpclient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>${httpclient.version}</version></dependency> <!-- quartz任务调度框架 --><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId><version>${quartz.version}</version></dependency> <!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>${junit.version}</version><scope>test</scope></dependency> <!-- 日志处理 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>${slf4j.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><dependency><groupId>com.github.miemiedev</groupId><artifactId>mybatis-paginator</artifactId><version>${mybatis.paginator.version}</version></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>${pagehelper.version}</version></dependency> <!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql.version}</version></dependency> <!-- 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>${druid.version}</version></dependency> <!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>${spring.version}</version></dependency><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-jms</artifactId><version>${spring.version}</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId><version>${spring.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>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>${commons-fileupload.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> <!-- dubbo相关 --><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>${dubbo.version}</version></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>org.apache.activemq</groupId><artifactId>activemq-all</artifactId><version>${activemq.version}</version></dependency><dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>${freemarker.version}</version></dependency></dependencies></dependencyManagement><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.8</source><target>1.8</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> <!-- 配置打包时跳过测试 ,首次配置使用的时候会自动联网进行下载 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><version>2.12.4</version></plugin></plugins></pluginManagement></build>
      </project>
      
    • 打包安装一下:把当前的parent项目安装maven的本地仓库中,其他的项目就可以进行依赖了

  • dream_common
    • 继承_parent,但是目录不在 _parent下

    • 右键parent工程->new->module

    • maven->next

    • 更改文件root

    • 添加打包jar

    • 添加依赖

      <?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"><parent><artifactId>dream_parent</artifactId><groupId>com.dream</groupId><version>1.0-SNAPSHOT</version><relativePath>../dream_parent/pom.xml</relativePath></parent><modelVersion>4.0.0</modelVersion><artifactId>dream_common</artifactId><packaging>jar</packaging><!-- 依赖工具类的jar包 --><dependencies> <!-- 时间操作组件 --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId></dependency> <!-- Apache工具组件 --><dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId></dependency><dependency><groupId>commons-io</groupId> <artifactId>commons-io</artifactId></dependency><dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId></dependency> <!-- Jackson Json处理工具包 --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId></dependency> <!-- httpclient --><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId></dependency> <!-- quartz任务调度框架 --><dependency><groupId>org.quartz-scheduler</groupId><artifactId>quartz</artifactId></dependency> <!-- 单元测试 --><dependency><groupId>junit</groupId><artifactId>junit</artifactId></dependency> <!-- 日志处理 --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId></dependency></dependencies></project>
      
    • 安装common

  • dream_manager
    • 后台管理项目的父工程,pom,依赖common

    • 跟common过程一样

    • pom.xml

      <?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"><parent><artifactId>dream_parent</artifactId><groupId>com.dream</groupId><version>1.0-SNAPSHOT</version><relativePath>../dream_parent/pom.xml</relativePath></parent><modelVersion>4.0.0</modelVersion><artifactId>dream_manager</artifactId><packaging>pom</packaging><dependencies><!--manager需要使用工具,需要调用common中的工具,添加common依赖--><dependency><groupId>com.dream</groupId><artifactId>dream_common</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
      </project>
      
  • dream_manager_pojo
    • 实体类工程,jar,继承manager,而且作为manager的子目录存在

    • 右键manager->new->module->maven->next

    • 两个next,查看目录

    • pom.xml:暂时不需要任何依赖

      <?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"><parent><artifactId>dream_manager</artifactId><groupId>com.dream</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dream_manager_pojo</artifactId><packaging>jar</packaging></project>
      
  • dream_manager_dao

    • 构建过程跟pojo一样

    • pom.xml

      <?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"><parent><artifactId>dream_manager</artifactId><groupId>com.dream</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dream_manager_dao</artifactId><packaging>jar</packaging><!-- 依赖的jar包 --><dependencies><dependency><groupId>com.dream</groupId><artifactId>dream_manager_pojo</artifactId><version>1.0-SNAPSHOT</version></dependency> <!-- Mybatis --><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId></dependency><dependency><groupId>org.mybatis</groupId><artifactId>mybatis-spring</artifactId></dependency><dependency><groupId>com.github.miemiedev</groupId><artifactId>mybatis-paginator</artifactId></dependency><dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId></dependency> <!-- MySql --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!-- 连接池 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId></dependency></dependencies>
      </project>
      
  • dream_manager_interface
    • 跟pojo和dao一样

    • pom.xml

      <?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"><parent><artifactId>dream_manager</artifactId><groupId>com.dream</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dream_manager_interface</artifactId><packaging>jar</packaging><dependencies><dependency><groupId>com.dream</groupId><artifactId>dream_manager_pojo</artifactId><version>1.0-SNAPSHOT</version></dependency></dependencies>
      </project>
      
  • dream_manager_service
    • 业务层,给其他工程提供服务,为了便捷发布服务, 打包成war

    • 右键manager->new->module->maven->选webapp的骨架(maven项目会根据估计搭建项目结构)

    • 后面都一样,查看目录结构

    • 更改为继承manager

    • pom.xml添加依赖

      <?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"><parent><artifactId>dream_manager</artifactId><groupId>com.dream</groupId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>dream_manager_service</artifactId><packaging>war</packaging><dependencies> <!-- dao依赖 --><dependency><groupId>com.dream</groupId><artifactId>dream_manager_dao</artifactId><version>1.0-SNAPSHOT</version></dependency> <!-- 接口的依赖 --><dependency><groupId>com.dream</groupId><artifactId>dream_manager_interface</artifactId><version>1.0-SNAPSHOT</version></dependency> <!-- spring的依赖 --> <!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency></dependencies>
      </project>
      
  • dream_manager_web
    • 继承parent,多个后台管理项目的表现层,war

    • 跟manager_service一样的骨架

      <?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"><parent><artifactId>dream_parent</artifactId><groupId>com.dream</groupId><version>1.0-SNAPSHOT</version><relativePath>../dream_parent/pom.xml</relativePath></parent><modelVersion>4.0.0</modelVersion><artifactId>dream_manager_web</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><dependencies> <!-- Spring --><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jdbc</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aspects</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-jms</artifactId></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context-support</artifactId></dependency> <!-- JSP相关 --><dependency><groupId>jstl</groupId><artifactId>jstl</artifactId></dependency><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jsp-api</artifactId><scope>provided</scope></dependency> <!-- 文件上传组件 --><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId></dependency></dependencies>
      </project>
      
3.3 启动工程
  • 先启动manager

    • 添加tomcat插件

    • 配置maven启动

    • 启动查看

  • 启动web工程

    • 添加tomcat,端口号设置为8080

          <!--配置tomcat插件--><build><plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><configuration><port>8080</port><!--端口号--><path>/</path><!--访问路径--></configuration></plugin></plugins></build>
      
    • 配置maven启动

    • 启动测试

3.4 项目目录


4.SSM整合

4.1 搭建商城项目的数据库环境
  • 新建一个数据库dream

  • 运行sql文件

    • 右键数据库->运行sql文件->选择dream.sql
4.2 使用MyBatis-逆向工程生成pojo和mapper文件,拷贝到pojo和dao下
  • 在MyBatis的配置文件中,修改连接的数据库,生成的数据的包,和指定的数据表

  • SOA的架构是需要pojo在项目中进行传输,需要对象流,把对象进行序列化,所有的pojo都需要实现序列化接口

    • 在MyBaits逆向工程生成时,指定需要实现序列化接口

      <!-- 配置pojo的序列化 -->
      <plugin type="org.mybatis.generator.plugins.SerializablePlugin" />
      

  • 把pojo拷贝到_pojo下,把mapper拷贝到 _dao下

4.3 配置dao层和service层
  • 在_service下新建java和resources

  • 在resources下新建3个资源文件夹

    • mybatis

      • 进行MyBatis的配置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><!--把数据库链接交给spring管理,SqlSession等-->
        </configuration>
        
    • spring

      • applilcationContext-dao.xml:dao层的配置

        <?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:context="http://www.springframework.org/schema/context"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"><!-- 导入资源文件 db.properties--><context:property-placeholder location="classpath:properties/db.properties"/><!-- 配置dbcp连接池参数使用Spring表达式来传值使用Druid连接池,在功能和性能上都超过其他的dbcp,c3p0等连接池,alibaba提供的--><bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"destroy-method="close"><property name="driverClassName" value="${jdbc.driver}"></property><property name="username" value="${jdbc.user}"></property><property name="password" value="${jdbc.password}"></property><property name="url" value="${jdbc.url}"></property><!-- 连接池启动时的初始值 --><property name="initialSize" value="${initialSize}" /><!-- 连接池的最大值 --><property name="maxActive" value="${maxActive}" /></bean><!-- 配置一个bean SqlSessionFactory对象--><bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"><!-- 配置连接池 --><property name="dataSource" ref="dataSource"></property><!-- MyBatis的核心文件 --><property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"></property></bean><!-- 配置包扫描器 --><bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"><!-- 配置要扫描的包 --><property name="basePackage" value="com.dream.mapper" /></bean>
        </beans>
        
      • applilcationContext-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:context="http://www.springframework.org/schema/context"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context.xsd"><context:component-scan base-package="com.dream.service"/>
        </beans>
        
      • applilcationContext-truns.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:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 1.配置事务的管理器 --><bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"><!-- 指定要对哪个数据库进行事务操作 --><property name="dataSource" ref="dataSource"></property></bean><!-- 2.开启事务的注解 --><tx:annotation-driven transaction-manager="transactionManager"></tx:annotation-driven>
        </beans>
        
    • properties

      • 配置文件db.properties

        jdbc.driver=com.mysql.jdbc.Driver
        jdbc.url=jdbc:mysql://127.0.0.1:3306/dream?useUnicode=true&amp;characterEncoding=UTF-8
        jdbc.user=root
        jdbc.password=123456#初始化连接数
        initialSize=10#最大连接数
        maxActive=50#最大空空闲数
        maxIdle=20#最小空闲数
        minIdle=5#最大等待时间
        maxWait=60000
        
      • log4j

        # Global logging configuration
        log4j.rootLogger=DEBUG, stdout
        # Console output...
        log4j.appender.stdout=org.apache.log4j.ConsoleAppender
        log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
        log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
        
  • web.xml

    <?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><!--加载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>
  • 目录

4.4 配置_web
  • 在main下,新建resources和java

  • 在resources下导入log4j和springmvc

    • spring

      • 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:context="http://www.springframework.org/schema/context"xmlns:mvc="http://www.springframework.org/schema/mvc"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-4.2.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd"><context:component-scan base-package="com.dream.controller"/><!--开启MVC注解扫描 如果配置了此注解驱动,那么就不用配置处理器映射器和处理器适配器了 --><mvc:annotation-driven/><!--静态资源映射--><mvc:default-servlet-handler/><!--<mvc:resources mapping="/css/**/" location="/css/"/>--><!--定义视图解析器ViewResolver --><bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"><property name="prefix" value="/WEB-INF/jsp/"/><property name="suffix" value=".jsp"/></bean>
        </beans>
        
  • web.xml

    <?xml version="1.0" encoding="UTF-8"?><web-app version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list><!-- 编码过滤器 --><filter><filter-name>encodingFilter</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><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping><!-- 配置DispatcherServlet --><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置springMVC需要加载的配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- 匹配所有请求,此处也可以配置成 *.do 形式  --><url-pattern>/</url-pattern></servlet-mapping></web-app>
  • 目录

  <param-value>UTF-8</param-value></init-param><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>*.jsp</url-pattern></filter-mapping><!-- 配置DispatcherServlet --><servlet><servlet-name>SpringMVC</servlet-name><servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class><!-- 配置springMVC需要加载的配置文件--><init-param><param-name>contextConfigLocation</param-name><param-value>classpath:spring/springmvc.xml</param-value></init-param><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>SpringMVC</servlet-name><!-- 匹配所有请求,此处也可以配置成 *.do 形式  --><url-pattern>/</url-pattern></servlet-mapping></web-app>
  • 目录

01_商城项目设计与工程搭建相关推荐

  1. django debug=false后静态文件丢失_python框架Django实战商城项目之工程搭建

    项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...

  2. python开发商城实战_python框架Django实战商城项目之工程搭建

    项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...

  3. 用python搭建微商城_python框架Django实战商城项目之工程搭建

    项目说明 该电商项目类似于京东商城,主要模块有验证.用户.第三方登录.首页广告.商品.购物车.订单.支付以及后台管理系统. 项目开发模式采用前后端不分离的模式,为了提高搜索引擎排名,页面整体刷新采用j ...

  4. 1-4 云商城项目工程搭建

    1-4 云商城项目工程搭建  接下来我们就来搭建下云商城的项目工程结构. 1.工程结构划分   因为我们搭建的是微服务项目,所以整体的项目结构会非常的零散.虽然零散但是程序的复用性会非常高,所以首先在 ...

  5. 淘淘商城第111讲——订单系统服务层和表现层工程搭建

    首先我们还是先看一眼淘淘商城的系统架构,如下图所示,可以看到订单系统是一个单独的模块,分服务层和表现层,服务层负责存储订单,表现层负责展示订单. 下面我们便要开始搭建工程了,可以先搭建订单系统的服务层 ...

  6. 淘淘商城第一天—电商行业的背景。淘淘商城的介绍。搭建项目工程。Svn的使用。

    1.电商行业的模式: B2B:企业到企业,商家到商家.代表:阿里巴巴.慧聪网. B2C:商家到客户.代表:京东.淘宝商城(B2B2C). C2C:客户到客户.淘宝集市. O2O:线上到线下. 2.技术 ...

  7. 某马-某淘商城的day01---分析,工程搭建,tomcat插件启动工程,svn,反思

    -1:为什么还要写某马的某淘商城呢? 答:万物更新,季节交替.新人总把旧人换.所以呢,前人写了N多遍的东西,我们依旧在学,所以下决心写某马的某淘商城.(也因为在学校还没找工作,所以找个相对长期的事情做 ...

  8. 商城项目03_人人前后端项目、逆向工程、common工程搭建、coupon以及各个微服务工程搭建

    文章目录 ①. 人人前后端项目 ②. 人人项目-逆向工程 ③. common工程搭建 ④. coupon.member.ware.order代码导入 ①. 人人前后端项目 ①. 在码云上搜索人人开源, ...

  9. 头条项目---01项目介绍和工程搭建

    第一章 项目介绍和工程搭建 学习目标 熟悉移动端应用系统的架构设计 熟悉大型软件系统设计中的各种图形结构 熟悉数据库分库分表设计技巧 熟悉Spring boot2.0+JavaConfig项目封装配置 ...

  10. Java在线教育项目 第一天项目介绍和工程搭建

    第一章 项目介绍和工程搭建 学习目标 熟悉移动端应用系统的架构设计 熟悉大型软件系统设计中的各种图形结构 熟悉数据库分库分表设计技巧 熟悉Spring boot2.0+JavaConfig项目封装配置 ...

最新文章

  1. HDU 6208 The Dominator of Strings ——(青岛网络赛,AC自动机)
  2. java连连看(GUI)
  3. mybatis 中#与$的区别
  4. HttpServlet类简介和简单用法
  5. 更改密码 sp_password
  6. MFC 教程【6_应用程序的退出 】
  7. 解决ajax中文乱码问题
  8. JQuery 四个常用的DOM操作获得内容 - text()、html()、value 以及 val() ;取属性值attr()----前三个有回调函数
  9. 按键脚本c语言,按键精灵脚本代码大全 按键精灵命令使用方法
  10. swagger分页查询报错500
  11. 网站:推荐几款好用的在线短链生成工具
  12. HTML <caption> 标签
  13. 好莱坞大片! 为躲避死亡威胁, 只用15步, 这个密码朋克大叔就从世界消失了......
  14. 物联网云平台DTU Modbus协议 上位机 下位机 源码 源代码 程序
  15. 2023年企业固定资产管理怎么破局?
  16. beacon设备使用记录
  17. 网络通讯学习(3)-----UDP通讯(仅了解)
  18. Variable conv1/weights already exists, disallowed. Did you mean to set reuse=True...tensorflow报错
  19. 3个月“零基础”考研上岸复旦软院
  20. 学习React第三篇:在React组件上设置属性(PropTypes)

热门文章

  1. 随机抽样方法正太分布 MC, MCMC, Gibbs采样 原理实现(in R)
  2. 【生信进阶练习1000days】day7-RSQLite的使用
  3. 划分数算法概述及习题
  4. Lucene PriorityQueue JDK PriorityQueue
  5. 分享一篇去年的项目总结
  6. LeetCode 49 - Group Anagram 归类同构字
  7. 第二章:WebDriver 打开Firefox浏览器 和 Chrome 浏览器
  8. 《HelloGitHub》第 13 期
  9. Mysql使用优化之处(转)
  10. 【转】64位win7环境eclipse集成svn后出现Failed to load JavaHL Library的解决办法