文章目录
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:
-
标签
-
将taotao-parent安装到本地仓库 install命令
过程步骤:
*wps第一天
**首让你的web模块跑起来
需要的步骤:(这里是webapp下的jsp文件不是 resources文件下的templates的.html文件)
- 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);
}
}
- application.yml的基本配置:
静态资源放行
- 默认值为 /**
- spring.mvc.static-path-pattern=
- 默认值为 classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
- spring.resources.static-locations=这里设置要指向的路径,多个使用英文逗号隔开,
**配置了一个通用的简单跳转代码
//不常用注解
//@Deprecated
@Controller
public class CodeViewController {
//有待探究:进行测试{page}地址栏里的值,成功!!!
@RequestMapping("/{page}")
public String index(@PathVariable("page") String page) {
System.out.println("page: " + page);
return page;
}
}
跨过的坑:(KENG)
==*值得条条浏览!
*install本地仓库问题
-
本地仓库缺少了 com.taotao.manager:pom:0.0.1-SNAPSHOT, 原来是忘记了将父工程打包到本地仓库 ,
运行聚合工程前记得先将依赖的工程都先Maven install到本地仓库
*逆向工程问题
-
mybatis 逆向工程之后别忘把 pom.xm l中的逆向工程插件注释掉
使用mabatis 逆向工程maven插件要注意生成完代码后建议将此插件在pom文件中注释掉,否则当你执行maven 编译、打包时可能会重复生成mapper相关的东西
*访问404
-
spring Boot + J SP 访问404
方法一: 使用spring boot提供的maven插件启动
方法二: 修改IDEA工作目录
- 第一步
- 第二步
这里每个module的工作目录默认都是空,代表项目的根目录下。我们的module如果不是顶级module,那就会找不到资源,所以我们的JSP不能正常访问。
- 第三步
-
更改默认目录
*module无法继承在父pom中的版本
-
解决办法:
在子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
-
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层(我太难了,好久好久)
*查询列表问题
-
记录(页面展示数据是:有list缓存前端显示的时候跟预想的会不一样(在意料之外))
-
痛苦
TbItemExample tbItemExample = new TbItemExample(); //查到的就一条;;我用注解混合的方式生成的逆向工程(结果证明并没有什么影响) List<TbItem> tbItems = tbItemMapper.selectByExample(tbItemExample); //原因是下面这个造成的
-
痛苦的根源
// 设置分页参数(当前页和当前页数据我加上这个之后就只能查到一条数据(放到后面又不能分页)) //原因找到擦。。。pageSize、currentPage这俩个参数放反了 //痛苦啊啊啊啊啊啊啊 PageHelper.startPage(pageSize,currentPag);
-
Linux FTP修改密码问题:无视过于简单化,直接重复输入两次即可
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
-
商品添加
$("#itemAddForm").serialize()将表单序列号为key-value形式的字符串
以post 的形式将表单的内容提交。
细节:
- 列编辑搞定(在源代码的模式下按住alt键编辑)
过程步骤:
*wps第三天
跨过的坑:
==*值得条条浏览!
*启动类位置:
-
启动类的位置很重要@SpringBootApplication默认扫描的是启动类的所在包和其子包下的Spring的注解。
-
如果找不到下面的iptables文件需要安装iptables-services
命令:yum install iptables-services
-
文件安装使用yum时 前面加sudo和不加的区别:sudo是为了给这个程序加一个root的权限!
-
虚拟机的防火墙未关闭导致被拦截访问不了(这个找了好久不知道原因):service iptables status
- service iptables stop
-
./configure \ (这个转义的空格:很致命:难受,搞了好久没看出来)
-
用户权限指令(Linux:主要是添加更大的权限)
-
%root ALL=(ALL) ALL(配置sudo)/etc/sudoers(具体用法有待进一步完善!指定用户可以使用sudo或指定用户组下)
-
cd /usr 和cd usr 的区别:一个平级下的目录“/”、一个是自己目录下的文件
-
Esc 之后按u::vim下的撤销
-
*访问时路径不对404问题(又挣扎好久,刺激!路径写错了!!不用带images)
11.nginx图片服务器上传失败(大小是 0k)
已解决:Windows防火墙打开Java。。。
解决方案二:修改FTPUtil,在storeFile之前添加
(未知)
告诉FTP Server每次传输文件时开启一个新的端口
12号
任务:添加商品规格模板
*商品规格模板:
商品添加的测试:课后作业(还剩一个编辑):完成
- 加载商品描述(主要是图片)
第三天的任务(商品规格)
- 加载商品规格(第三天任务)
- 添加上商品规格
- 规格参数模板添加
- 新增商品套用模板动态生成规格参数表单
- 保存商品规格数据
完成
课后作业:(晚自习两个页面的编辑)
细节:
-
编辑对话框左上角东西(已找到!)
<%--此处就是我苦苦寻找的对话框左上角修改--%> <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问题
-
再次启动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文件夹,每次重启都会被删除,现在配置一个永久的)。
都启动了现在还是外网访问不了
-
vsftpd:::iptables 防火墙又是开启状态(终于起来了)
-
nginx能启动了但是访问403(还是配置文件的问题nginx/conf:::并没有解决)
引起nginx 403 forbidden通常是三种情况:https://my.oschina.net/ssdlinux/blog/2248155
一是缺少索引文件,二是权限问题,三是seLinux状态。
-
上传图片失败(ftp可以也就是测试类通过了(啥也没改不知道咋回事就好了))
-
idea进入控制层debugF7进入方法但是进入了代理类(应该是加了事务代理???我设置自增之后跟IDutils取得ID不一样???有空再搞):解决了::办法:(不用把id设成自增):tb_item Mapper.xml里面ID没有设置
-
查询的param_data为null???text类型,Java中String
MySQL的test类型值
可用于存储可以从
1字节到
4GB长度的文本字符串。 我们经常在电子商务网站中找到用于在新闻站点存储物品的
TEXT`数据类型,如:产品详细描述。解决:使用tbItemParamMapper.selectByExampleWithBLOBs(tbItemParamExample);
-
请求get、post最大的问题不写注解的时候参数要和前端一致,没写一致错了404好久
-
后端写一个Javabean来存贮前端的值(或者前端给封成对象传到后台!)
13号
任务:完善和填坑
昨天的规格参数编辑(还有查询商品的部分未解决):
还有13号的任务:全部搞定!!!
过程步骤:
*wps第四天
细节步骤:
*两种保存对比传的参数:
- 保存和修改商品规格:
- 商品详情的保存和修改
跨过的坑:
==*值得条条浏览!
-
今天启动ftp又出现外网不能访问的问题:(下面是虚拟机的防火墙假关闭)
-
(下面是虚拟机的防火墙真关闭):我先开启,然后又关闭一下就好了
-
数据库更新、删除的时候返回的成功的条数(并不是成功就返回1所以说判断的时候使用(!= 0))
-
测试到一个bug(可以说是基础):new 对象时的地址存储问题(A a = new A();):不能复用基础
new的对象的属性可覆盖,但是分配给此对象的地址是同一个,不存在覆盖(一个在堆区存取,一个在栈区存储)
-
updateByPrimaryKeySelective和updateByExampleSelective区别???
一个无条件限制更新(待测试知道效果)、一个有条件
-
逆向工程生成的代码可以模仿增加方法:(这种想法不错但还是错误百出)
-
更新表三失败规格商品参数关联表(调用方法使用错误)
-
更改逆向工程生成的代码需要注意什么?(一般不需要更改,尝试吧,有时间)
总结(第一阶段后台结束)
收获:
Author : 陈祥朋