淘淘商城练习

 

PS:项目文件架构

 -------------------Day2 

PS: 电商项目中一般是不进行(或尽量少)  关联查询  因为并发的原因

          Sku:最小库存量单位。就是商品id。就是商品最细力度的划分。每个sku都唯一对应一款商品,商品的颜色、配置都已经唯一确定。

4Ssm框架整合
4.1整合的思路
4.1.1Dao层
使用mybatis框架。创建SqlMapConfig.xml。
创建一个applicationContext-dao.xml
1、配置数据源
2、需要让spring容器管理SqlsessionFactory,单例存在。
3、把mapper的代理对象放到spring容器中。使用扫描包的方式加载mapper的代理对象。

4.1.2Service层
1、事务管理
2、需要把service实现类对象放到spring容器中管理。

4.1.3表现层
1、配置注解驱动
2、配置视图解析器
3、需要扫描controller

4.1.4Web.xml
1、spring容器的配置
2、Springmvc前端控制器的配置
3、Post乱码过滤器

 PS: 为啥不全部扫描Spring下所有的包,因为两者是不同的容器

 ------------------------------------------------------

PS: 需要注意的问题: WEB-INF中数据是不能直接访问的,所以需要使用一个pageControler进行转换

package com.taotao.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * 页面跳转controller
 * <p>Title: PageController</p>
 * <p>Description: </p>
 * <p>Company: www.itcast.com</p> 
 * @author    入云龙
 * @date    2015年9月2日上午11:11:41
 * @version 1.0
 */
@Controller
public class PageController {

    /**
     * 打开首页
     */
    @RequestMapping("/")
    public String showIndex() {
        return "index";
    }
    /**
     * 展示其他页面
     * <p>Title: showpage</p>
     * <p>Description: </p>
     * @param page
     * @return
     */
    @RequestMapping("/{page}")
    public String showpage(@PathVariable String page) {
        return page;
    }
}

 

1.1.1.1.1 分页测试

public class TestPageHelper {

@Test

public void testPageHelper() {

//创建一个spring容器

ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");

//从spring容器中获得Mapper的代理对象

TbItemMapper mapper = applicationContext.getBean(TbItemMapper.class);

//执行查询,并分页

TbItemExample example = new TbItemExample();

//分页处理

PageHelper.startPage(2, 10);

List<TbItem> list = mapper.selectByExample(example);

//取商品列表

for (TbItem tbItem : list) {

System.out.println(tbItem.getTitle());

}

//取分页信息

PageInfo<TbItem> pageInfo = new PageInfo<>(list);

long total = pageInfo.getTotal();

System.out.println("共有商品:"+ total);

}

}

注意:分页插件对逆向工程生成的代码支持不好,不能对有查询条件的查询分页。会抛异常。

使用我修改过的版本就可以了

----------------------------------------------------------------------------------------------------------------------------

 PS : 图片上传

Ps:传统情况下,上传图片放在项目的image目录下,但是文件多了就不能这么操作了。 采用负载均衡,
因为负载均衡器使用轮训算法,上传的时候没有同步会出现有时找到,有时找不到的情况

PS:集群的情况,就是图片专门放在一个图片服务器上,这样就能共享图片了

 

 PS:Web-INF下的文件是无法直接访问的 ,必须用Controller转一下

PS: 什么是Jsonp

 

 

原文地址:https://www.cnblogs.com/bee-home/p/9882220.html