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