品优购总结

项目知识点:

1.@RequestBody--对应实体类封装和@RequestParam

2.mybatis中example的使用


3.下拉框可以多选使用select2-发发权限中有讲到,select2当中数据格式  就是下面的data

$scope.brandList={data:[{id:1,text:'联想'},{id:2,text:'华为'},{id:3,text:'小米'}]}

4.ng-options属性可以在表达式中使用数组或对象来自动生成一个select中的option列表。ng-options与ng-repeat很相似,很多时候可以用ng-repeat来代替ng-options。但是ng-options提供了一些好处,例如减少内存提高速度,以及提供选择框的选项来让用户选择。

5.json传数据:对象,数组对象

6.JSON方法总结:

1)@JSONField(name="DATE OF BIRTH", format="dd/MM/yyyy", ordinal = 3)

private Date dateOfBirth;

注意:FastJson 在进行操作时,是根据 getter 和 setter 的方法进行的,并不是依据 Field 进行。

注意:若属性是私有的,必须有set 方法。否则无法反序列化。

2)fastjson提供了toJSONString() 和 parseObject() 方法来将 Java 对象与 JSON 相互转换。调用toJSONString方 法即可将对象转换成 JSON 字符串,parseObject 方法则反过来将 JSON 字符串转换成对象。

注意反序列化时为对象时,必须要有默认无参的构造函数,否则会报异常。

3)某些场景下,对Value做过滤,需要获得所属JavaBean的信息,包括类型、字段、方法等。在fastjson-1.2.9中,提供了ContextValueFilter,类似于之前版本提供的ValueFilter,只是多了BeanContext参数可用。

JSONArray jsonArray = JSON.parseArray(JSON_ARRAY_STR);

JSONObject jsonObject = JSON.parseObject(COMPLEX_JSON_STR);

JSONObject jsonObject = JSON.parseObject(JSON_OBJ_STR);

将集合转化为map

List<Map> imageList = JSON.parseArray(goods.getGoodsDesc().getItemImages(),Map.class);

parseObject直接默认是Map?别的要指定 Map.class

7.http://localhost:9102/admin/goods_edit.html#?id=149187842867969 

注意:?前要加# ,则是angularJS的地址路由的书写形式

$location ----var id= $location.search()['id'];//获取参数值

8.useGeneratedKeys要求数据库本身具备主键自动增长的功能,比如说,mysql,sqlserver可以使用useGeneratedKeys =true 这功能,不支持主键自动增长的数据库是不能使用useGeneratedKeys =true的

不支持的用selectKey子节点来做,oracle不支持useGeneratedKeys,否则会报“不支持的特性”

9.xsd或者dtd文件有问题  复制那个url打开浏览器,然后网页另存为导入即可!

10.Long.valueOf(这里有参数),是将参数转换成long的包装类——Long。

longValue()是Long类的一个方法,用来得到Long类中的数值。

前者是将基本数据类型转换成包装类后者是将包装类中的数据拆箱成基本数据类型

项目中常用思想:

1.将常用的操作封装在baseController.jsr中,

比如分页,批量删除时对数组的操作,获取JSON字符串中的某个key对应值的集合--规格:内存、网络,从集合中查询某个名称的值是否存在

2.添加和修改的时候,可以进行合并--后端或者前端操作  但是也要看情况



3.增删改都要对结果进行封装提示

封装一个Result结果类  boolean  string

4.页面传过来的是一对多的数据,用对象封装,比如规格和规格选项


保存提交:

实现思路:我们将规格和规格选项数据合并成一个对象来传递,这时我们需要用一个对象将这两个对象组合起来。在业务逻辑中,得到组合对象中的规格和规格选项列表,插入规格返回规格ID,然后循环插入规格选项。

这里使用到了last_insert_id(),是mysql的函数

5.修改的时候先删除再添加,删除的时候也要删除关联的:先删除规格,再添加条件id,会删除相应的规格选项中所有带这个id 的

6.springsecurity使用要先放行静态页面  img js css等,账号密码可以直接在配置文件中配置,也可以从数据中获取

/* 代表的是根路径下的所有资源(不包含子路径) /**代表的是根路径下所有的资源(包含子路径)

要把add.do放行,不然商家永远注册不了,一直都会重定向到注册页面,发生错误

BCrypt算法将salt随机并混入最终加密后的密码,验证时也无需单独提供之前的salt,从而无需单独处理salt问题。不用再另外加盐

后台管理系统用权限框架,前台门户网站用sso  cas策略单点登录

always-use-default-target:指定了是否在身份验证通过后总是跳转到default-target-url属性指定的URL。这样不会跳转到之前输入的url中,前台门户网站可以跳转到自己输入的,后台应该指定默认

7.商家系统登陆与安全控制,商家账号来自数据库,并实现密码加密

进行校验时,只需要先传入username,然后去数据库查出,再根据这个正确的密码去校对,由于在form表单中指定了password,框架会自动匹配。

8.面包屑的使用一级分类,二级分类,三级分类  每次点击传入findByparentId(entity.id)

9.添加商品这个信息比较多,建议另外跳转页面进行处理,少量信息可以采用弹出模态框!

10.Kingeditor的使用:还有引入JS的时候顺序问题也很重要,要先加载哪一个

11.对于fastdfs上面的图片也可能会有很多垃圾存在,可以采用springtask进行每天凌晨定时清理无用的图片

12.我们为商品管理提供商品删除功能,用户选中部分商品,点击删除按钮即可实现商品删除。注意,这里的删除并非是物理删除,而是修改tb_goods表的is_delete字段为1 ,我们可以称之为“逻辑删除”

13.广告缓存-redis

现在我们首页的广告每次都是从数据库读取,这样当网站访问量达到高峰时段,对数据库压力很大,并且影响执行效率。我们需要将这部分广告数据缓存起来。

使用:findByCategoryId

先从缓存中查询,如果值为空,则从数据库查询,并放入缓存即可

当广告数据发生变更时,需要将缓存数据清除,这样再次查询才能获取最新的数据

14.搜索方案--solr

复制域的作用在于将某一个Field中的数据复制到另一个域中

当我们需要动态扩充字段时,我们需要使用动态域。对于品优购,规格的值是不确定的,所以我们需要使用动态域来实现。需要实现的效果如下:  然后只需要在实体类中加上@Field注解

15.solr服务器地址中:如果数据索引库不止一个,要指定数据库,并且还要修改core.properties

16.按价格区间搜索方案:0和上限要区别处理

17单点登录可以理解为游乐园的通票!

在一处地方登录后,别的地方需要登录的时候不需要登录分布式

18.当用户在未登录的情况下,将此购物车存入cookies ,在用户登陆的情况下,将购物车数据存入redis  。如果用户登陆时,cookies中存在购物车,需要将cookies的购物车合并到redis中存储.

19.跳板页

20.判断的时候有时候可能从某处get得到的不会是null,但是时一个空的集合,所以要加上别的判断:cartList_cookie.size()>0

21.状态显示:

1)用if  麻烦

2)用一个数组存取状态status[未审核,已审核,不通过,通过],然后status[0/1]

22.修改商品:如果修改的东西比较多,就不用弹窗

23.使用三目元算符做判断

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 实物类# 【数纸机】#### 既然有可以清点验钞的点钞机,为何没有可以清点名片纸张的数纸机? 【超级笔记本】###...
    小Z在here阅读 273评论 0 2
  • 正值阳春三月,西湖边一派早春美景。湖面的春水恰与两岸的堤岸齐平,冬日那高挂空中的云也似乎与其结为朋友连在了一起。...
    但愿人长久_70d9阅读 206评论 0 0
  • 我觉得村上春树是极度幸运的,证据便是《且听风吟》。 在他30岁的时候,凭借着这本书结束了原本平庸的酒吧老板的职业生...
    PaulForReading阅读 1,029评论 3 10