SSM 写出乐淘商城

SSM

乐淘商城

项目介绍

  淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。客服可以在后台管理系统中处理用户的询问以及投诉。

功能模块

1.后台管理系统:管理商品、订单、类目、商品规格属性、用户管理以及内容发布等功能。

2.前台系统:用户可以在前台系统中进行注册、登录、浏览商品、首页、下单等操作。

3.会员系统:用户可以在该系统中查询已下的订单、收藏的商品、我的优惠券、团购等信息。

4.订单系统:提供下单、查询订单、修改订单状态、定时处理订单。

5.购物车模块:显示被选择的商品数量,单价,总价等信息,修改选中商品的数量,可跳转到下单界面。

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

主要技术

Spring、SpringMVC、Mybatis

JSP、JSTL、jQuery、jQuery plugin、EasyUI、KindEditor(富文本编辑器)、CSS+DIV

Redis(缓存服务器)

Solr(搜索)

RSA(加密)

httpclient(调用系统服务)

Mysql

Nginx(web服务器)

Jmeter

项目话述

  面试官您好,我这个项目是乐淘商城,我先介绍一下该项目的研发思路及大体的功能。淘淘网上商城是一个综合性的B2C平台,类似京东商城、天猫商城。会员可以在商城浏览商品、下订单,以及参加各种活动。管理员、运营可以在平台后台管理系统中管理商品、订单、会员等。客服可以在后台管理系统中处理用户的询问以及投诉。

  功能模块有后台管理系统,前台系统,会员系统,订单系统,购物车模块,搜索系统。

  我再来介绍一下该项目的主要业务流程。

  第一个是前台系统,如果想购买商品并且获得某些优惠,必须要先进行登录,如果没有账号那就要先注册,我们是使用手机号进行注册。登录之前用户可以浏览商品,将选中的商品暂存于本地,登录后用户可以对商品下单,已进入购物车的商品存入redis。设置管理员权限和超级管理员,我们通过5张表用户表、角色、权限表、以及用户角色表和角色权限表两张码表,这样就可以通过登录的用户来获取权限列表,或判断是否拥有某个权限。

  第二个是后台管理系统,管理员可以管理品牌,上架或下架商品,改变订单状态,添加或删除商品类型,录入商品规格,商品信息内容发布,管理员可以对普通用户进行管理,超级管理员可以修改所有账号的权限,客服可以在后台管理系统中处理用户的询问以及投诉。

  第三个是会员系统,普通用户可以进行充值成为商城会员,用户可以在该系统中查询已下订单的状态、收藏的商品、我的优惠券、团购,购买记录等。会员用户每个月可以获得一些优惠券,购买的商品达到优惠券的使用条件就可以使用优惠券抵消一部分价格。

  第四个是订单系统,用户可以在把选好的商品投入购物车后对商品下单,下单完成后可以查询订单状态,在一定时限内可以修改订单要求(如送达地点,送达时间等),系统会自动处理订单(如只保留前一千个订单)。

  第五个是购物车模块,购买商品后会把商品暂存入购物车中,如果用户已登录,存入redis中,如果未登录则存入本地。用户使用购物车一起结算下单,显示总价格。打开购物车时在购物车中自动显示商品优惠信息,并且生成最优选择推荐给用户,随时提示购物车商品价格变化,增加其他商品,查询购物车,修改已选择的商品的数量,从购物车中删除商品。

  第六个是搜索系统,无论是否登录,用户都可以进行商品的搜索,自由选择筛选条件,如品牌,类型等信息。

 

完整开发步骤

导包

spring的jar包

mybatis的jar包

mybatis-Spring的jar包

aop的依赖jar包

oracle等数据库连接的jar包

DataSource的jar包

日志包

导入配置文件

web.xml

mvc.xml

applicationContext.xml

applicationContext.properties

初始化配置

 

web.xml

 

 

spring核心控制器

 

 

指定mvc配置文件的路径

 

 

指定编码的filter

 

 

`<servlet>
    <servlet-name>mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 指定springMVC配置文件的路径 -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:mvc.xml</param-value>
    </init-param>
    <!-- 设置tomcat启动前去创建servlet对象 -->
    <load-on-startup>1</load-on-startup>
  </servlet>
  <!-- 指定springMVC的所有控制器的访问路径都以*.do结尾 -->
  <servlet-mapping>
    <servlet-name>mvc</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>`

 

 

spring工厂初始化的监听器

 

 

spring配置文件初始化

<listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>

 

    <!--3. 手动指定配置文件路径  -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:/applicationContext.xml</param-value>
    </context-param>

mvc.xml

 

注解管理controlller

注解开发mvc

`<context:component-scan base-package="com.baizhi"></context:component-scan>
     <mvc:annotation-driven></mvc:annotation-driven>`

 

applicationContext.xml

 

引入外部的配置文件

` <context:property-placeholder location="classpath:/application.properties"></context:property-placeholder>`

开启注解管理除了Controller

`<context:component-scan base-package="com.baizhi"></context:component-scan>`

连接池

`<bean id="dataSour" class="com.alibaba.druid.pool.DruidDataSource">
         <property name="driverClassName" value="oracle.jdbc.OracleDriver"></property>
         <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"></property>
         <property name="username" value="${database.username}"></property>
         <property name="password" value="${database.password}"></property>
         <property name="initialSize" value="${database.initialSize}"></property>
         <property name="maxActive" value="${database.maxActive}"></property>
         <property name="maxWait" value="${database.maxWait}"></property>
     </bean>
     `

事务相关

`<!-- 配置增强类所需要用到的事务管理器 -->
     <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         <property name="dataSource" ref="dataSour"></property>
     </bean>`

`<!-- 配置能自动生成事务先关的增强类的类 -->
     <tx:advice id="txAdvice" transaction-manager="txManager">
         <tx:attributes>
             <tx:method name="get*" read-only="true" propagation="SUPPORTS" rollback-for="java.lang.RuntimeException"/>
             <tx:method name="to*" read-only="false" propagation="REQUIRED" rollback-for="java.lang.RuntimeException"/>
             <tx:method name="*" read-only="false" propagation="REQUIRED" rollback-for="java.lang.RuntimeException"/>
         </tx:attributes>
     </tx:advice>`

`<!-- aop动态代理选择切入点和组装 -->
     <aop:config>
         <aop:pointcut expression="execution(* com.baizhi.service.impl.*.*(..))" id="usercut"/>
         <aop:advisor advice-ref="txAdvice" pointcut-ref="usercut"/>
     </aop:config>`

Mybatis相关

`<bean id='sqlSessionFactory' class="org.mybatis.spring.SqlSessionFactoryBean">
           <property name="dataSource" ref="dataSour"></property>
           <property name="mapperLocations" value="classpath:/com/baizhi/dao/impl/*.xml"></property>
           <property name="typeAliasesPackage" value="com.baizhi.entity"></property>
       </bean>
  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
      <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
      <property name="basePackage" value="com.baizhi.dao"></property>
  </bean>`

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值