商城学习01(踏坑)

tao tao Shop开始

8号

建工程:这里我选择了web模板(这个不重要)

  • 模块依赖关系

模块依赖关系

  • 依赖关系:

    web -------service

    service -------- mapper

    mapper ------- pojo


    taotao-parent是所有子模块的parent

    taotao-common和 taotao-manager是同级的,都是第二级module

    taotao-manager-pojo

    taotao-manager-mapper

    taotao-manager-service

    taotao-manager-web

    这四个都是taotao-manager这个聚合工程的子module,属于第三级module

litterKEY:

  1. 标签

  2. 将taotao-parent安装到本地仓库 install命令

过程步骤:

*wps第一天

**首让你的web模块跑起来

需要的步骤:(这里是webapp下的jsp文件不是 resources文件下的templates的.html文件)

  1. SpringBoot需要有个启动类
/**
 * 启动类(配置文件)。。..
 */
@SpringBootApplication
@MapperScan(basePackages = "com.taotao.mapper")
public class SpringbootApplication {

    public static void main(String[] args) {
        /*SpringApplication.run(SpringbootSsmApplication.class, args);*/
        //关闭banner
        SpringApplicationBuilder sub = new SpringApplicationBuilder(SpringbootApplication.class);
        sub.bannerMode(Banner.Mode.OFF).run(args);
    }

}

  1. application.yml的基本配置:

静态资源放行

  • 默认值为 /**
    • spring.mvc.static-path-pattern=
  • 默认值为 classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
    • spring.resources.static-locations=这里设置要指向的路径,多个使用英文逗号隔开,

**配置了一个通用的简单跳转代码

  • @RequestParam 取得是请求参数里面的值( ‘?’ 后面的值)

  • @PathVariable 拿的是 ‘/’ 后面的值

//不常用注解
//@Deprecated
@Controller
public class CodeViewController {
//有待探究:进行测试{page}地址栏里的值,成功!!!
    @RequestMapping("/{page}")
    public String index(@PathVariable("page") String page) {
        System.out.println("page: " + page);
        return page;
    }
}

跨过的坑:(KENG)

==*值得条条浏览!

*install本地仓库问题

  1. 本地仓库缺少了 com.taotao.manager:pom:0.0.1-SNAPSHOT, 原来是忘记了将父工程打包到本地仓库 ,

    运行聚合工程前记得先将依赖的工程都先Maven install到本地仓库

淘淘错误2

*逆向工程问题

  1. mybatis 逆向工程之后别忘把 pom.xm l中的逆向工程插件注释掉

    使用mabatis 逆向工程maven插件要注意生成完代码后建议将此插件在pom文件中注释掉,否则当你执行maven 编译、打包时可能会重复生成mapper相关的东西

taotao_错误

*访问404

  1. spring Boot + J SP 访问404

    方法一: 使用spring boot提供的maven插件启动

    方法二: 修改IDEA工作目录

    • 第一步

    在这里插入图片描述

    • 第二步

    这里每个module的工作目录默认都是空,代表项目的根目录下。我们的module如果不是顶级module,那就会找不到资源,所以我们的JSP不能正常访问。

    在这里插入图片描述

    • 第三步
  • 更改默认目录

    在这里插入图片描述

*module无法继承在父pom中的版本

  1. 解决办法:

    在子module的标签中添加 <relativePath />

<parent>
    <artifactId>taotao-parent</artifactId>
    <groupId>com.taotao.parent</groupId>
    <version>1.0-SNAPSHOT</version>
    <relativePath />
</parent>

*mybatis出现NO bean ""提示重复注入

<!--忘记加又坑一回-->
<property name="nullCatalogMeansCurrent" value="true"/>

*私有目录下.jsp的通用跳转

/**
 * 通过代码去跳转到JSP(我觉得挺好)
 */
@Controller
@Deprecated
public class CodeViewController {

    @RequestMapping("/{page}")
    public String index(@PathVariable("page") String page) {
        System.out.println("page: " + page);
        return page;
    }
}

收获

Litter Keys

*1.注意:每个module里面都要加此文件(.gitignore)

*2.本地目录安装此文件

命令行输入:mv gitignore.txt .gitinore

*3. 文件 .gitignore 的格式规范如下:

  • 所有空行或者以 # 开头的行都会被 Git 忽略。
  • 可以使用标准的 glob 模式匹配。
  • 匹配模式可以以(/)开头防止递归。
  • 匹配模式可以以(/)结尾指定目录。
  • 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。

*4. Linux字体颜色识别

浅蓝色:表示链接文件;

灰色:表示其他文件;

绿色:表示可执行文件;

红色:表示压缩文件;

蓝色:表示目录;

红色闪烁:表示链接的文件有问题了;

黄色:表示设备文件,包括block,char,fifo。

9号

任务:主要vsftp和nginx的安装

查询商品、成功

tree展示、成功

vsftpd FTP安装、失败

nginx安装、失败

过程步骤:

*wps第二天

跨过的坑:

==*值得条条浏览!

*交互产生的404

  1. http://localhost:8080/item/list?page=1&rows=30发生404错误

    后台显示:No mapping for GET

    应该是Controller层没进去或者没找到

    原因有几点:
    1.可能是Application启动类的位置不对,导致于扫描不到对应的controller

    解决方法:应把启动类放到外层,这样能扫描所有的子包中的类

    2.可能是application.properties或application.yml中的映射关系出现错误

    解决方法:可以搜一下相关参数,查看具体写法

    https://www.jianshu.com/p/a4bb58331107

    3.可能是@RequestMapping(“xxxx”)中的xxxx访问路径配置错误

    解决方法:检查访问的URL是否正确

  • 总结:我想用自己的分页(采用的是jsp方法不一样),结果前端用的是分页插件所以一直报404错误

    但是还是404未解决::::::

    ==@GetMapping("/list?{page}&{rows}")==这是什么格式(貌似不支持?)。。。。(后知后觉好像少个/)

    把他删掉就进来了controller层(我太难了,好久好久)

*查询列表问题

  1. 记录(页面展示数据是:有list缓存前端显示的时候跟预想的会不一样(在意料之外))

  2. 痛苦

     		TbItemExample tbItemExample = new TbItemExample();
            //查到的就一条;;我用注解混合的方式生成的逆向工程(结果证明并没有什么影响)
            List<TbItem> tbItems = tbItemMapper.selectByExample(tbItemExample);
            //原因是下面这个造成的
    
  3. 痛苦的根源

         // 设置分页参数(当前页和当前页数据我加上这个之后就只能查到一条数据(放到后面又不能分页))
                   //原因找到擦。。。pageSize、currentPage这俩个参数放反了
                   //痛苦啊啊啊啊啊啊啊
                        PageHelper.startPage(pageSize,currentPag);
    
  4. Linux FTP修改密码问题:无视过于简单化,直接重复输入两次即可

cxp123456.我的密码

11号

任务:商品添加

1. vsftpd FTP安装、(跳过了第六步,然后出现了第六步的错误,哈哈)

访问地址:::ftp://10.10.13.105——————成功

2. nginx安装、

**访问路径:::**10.10.13.105——————成功

用nginx反向代理FTP图片管理器(负责展示用http或者https协议展示出来图片)

步骤:

修改nginx配置文件—nginx.conf

server {

​ listen 80;
​ server_name images.cxp.taotao.com;

​ location / {

​ root /home/ftpuser/images;
​ index index.html index.htm;
​ }

}

修改权限ftpuser:chmod 777 -R ftpuser(最大权限)

修改访问地址栏位置:

C:\Windows\System32\drivers\etc

**3.Java测试类上传文件:**go、(搞定)

这句话好好理解下??(false,有个原因是Windows未开防火墙)

Assertions.assertTrue(ret,"上传成功!");

4.resources.properties文件配置

ftp.host=images.cxp.taotao.com
ftp.port=21
ftp.username=ftpuser
ftp.password=cxp123456.
ftp.basePath=/home/ftpuser/images
image.domain=http://images.cxp.taotao.com

  1. 商品添加

    $("#itemAddForm").serialize()将表单序列号为key-value形式的字符串

    以post 的形式将表单的内容提交。

    在这里插入图片描述

细节:

  1. 列编辑搞定(在源代码的模式下按住alt键编辑)

过程步骤:

*wps第三天

跨过的坑:

==*值得条条浏览!

*启动类位置:

  1. 启动类的位置很重要@SpringBootApplication默认扫描的是启动类的所在包和其子包下的Spring的注解。

  2. 如果找不到下面的iptables文件需要安装iptables-services

    命令:yum install iptables-services

  3. 文件安装使用yum时 前面加sudo和不加的区别:sudo是为了给这个程序加一个root的权限!

  4. 虚拟机的防火墙未关闭导致被拦截访问不了(这个找了好久不知道原因):service iptables status

  • service iptables stop
  1. ./configure \ (这个转义的空格:很致命:难受,搞了好久没看出来)

  2. 用户权限指令(Linux:主要是添加更大的权限)

  3. %root ALL=(ALL) ALL(配置sudo)/etc/sudoers(具体用法有待进一步完善!指定用户可以使用sudo或指定用户组下)

  4. cd /usr 和cd usr 的区别:一个平级下的目录“/”、一个是自己目录下的文件

  5. Esc 之后按u::vim下的撤销

  6. *访问时路径不对404问题(又挣扎好久,刺激!路径写错了!!不用带images)

    在这里插入图片描述

11.nginx图片服务器上传失败(大小是 0k)

​ 已解决:Windows防火墙打开Java。。。

解决方案二:修改FTPUtil,在storeFile之前添加

(未知)

告诉FTP Server每次传输文件时开启一个新的端口

12号

任务:添加商品规格模板

*商品规格模板:

商品添加的测试:课后作业(还剩一个编辑):完成

  • 加载商品描述(主要是图片)

第三天的任务(商品规格)

  • 加载商品规格(第三天任务)
  • 添加上商品规格
  1. 规格参数模板添加
  2. 新增商品套用模板动态生成规格参数表单
  3. 保存商品规格数据

完成

课后作业:(晚自习两个页面的编辑)

细节:

  1. 编辑对话框左上角东西(已找到!)

    <%--此处就是我苦苦寻找的对话框左上角修改--%>
    <div id="itemEditWindow" class="easyui-window" title="编辑商品" data-options="modal:true,closed:true,iconCls:'icon-save',href:'/pageView/item-edit'" style="width:80%;height:80%;padding:10px;">
    
    

过程步骤:

*wps第四天

跨过的坑:

*值得条条浏览!

*vsftpd和nginx问题

  1. 再次启动ftp和nginx问题(都访问不了):

    配置文件(上边第十条少带一个大括号)

    nginx问题(启动不了):https://blog.youkuaiyun.com/qq_36004521/article/details/79583194

    错误:nginx: [error] open() “/var/run/nginx/nginx.pid” failed (2: No such file or directory)

    pid logs/nginx.pid;(打开这个,然后在/var/run/创建一个nginx文件夹,每次重启都会被删除,现在配置一个永久的)。

    都启动了现在还是外网访问不了

  2. vsftpd:::iptables 防火墙又是开启状态(终于起来了)

  3. nginx能启动了但是访问403(还是配置文件的问题nginx/conf:::并没有解决)

    引起nginx 403 forbidden通常是三种情况:https://my.oschina.net/ssdlinux/blog/2248155

    一是缺少索引文件,二是权限问题,三是seLinux状态。

  4. 上传图片失败(ftp可以也就是测试类通过了(啥也没改不知道咋回事就好了))

  5. idea进入控制层debugF7进入方法但是进入了代理类(应该是加了事务代理???我设置自增之后跟IDutils取得ID不一样???有空再搞):解决了::办法:(不用把id设成自增):tb_item Mapper.xml里面ID没有设置

  6. 查询的param_data为null???text类型,Java中String

    MySQL的test类型值可用于存储可以从1字节到4GB长度的文本字符串。 我们经常在电子商务网站中找到用于在新闻站点存储物品的TEXT`数据类型,如:产品详细描述。

    解决:使用tbItemParamMapper.selectByExampleWithBLOBs(tbItemParamExample);

  7. 请求get、post最大的问题不写注解的时候参数要和前端一致,没写一致错了404好久

  8. 后端写一个Javabean来存贮前端的值(或者前端给封成对象传到后台!)


13号

任务:完善和填坑

昨天的规格参数编辑(还有查询商品的部分未解决):

还有13号的任务:全部搞定!!!

过程步骤:

*wps第四天

细节步骤:

*两种保存对比传的参数:

  1. 保存和修改商品规格:

在这里插入图片描述

  1. 商品详情的保存和修改

在这里插入图片描述

跨过的坑:

==*值得条条浏览!

  1. 今天启动ftp又出现外网不能访问的问题:(下面是虚拟机的防火墙假关闭)

    在这里插入图片描述

  2. (下面是虚拟机的防火墙真关闭):我先开启,然后又关闭一下就好了

    在这里插入图片描述

  3. 数据库更新、删除的时候返回的成功的条数(并不是成功就返回1所以说判断的时候使用(!= 0))

  4. 测试到一个bug(可以说是基础):new 对象时的地址存储问题(A a = new A();):不能复用基础

    new的对象的属性可覆盖,但是分配给此对象的地址是同一个,不存在覆盖(一个在堆区存取,一个在栈区存储)

  5. updateByPrimaryKeySelective和updateByExampleSelective区别???

    一个无条件限制更新(待测试知道效果)、一个有条件

  6. 逆向工程生成的代码可以模仿增加方法:(这种想法不错但还是错误百出)

  7. 更新表三失败规格商品参数关联表(调用方法使用错误)

  8. 更改逆向工程生成的代码需要注意什么?(一般不需要更改,尝试吧,有时间)

总结(第一阶段后台结束)

收获:

在这里插入图片描述

Author : 陈祥朋


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值