-
系统现有缺陷和待优化点
查看全部 -
数据库字段何时用not null。以手机号为例,如果业务上它是必须的,那么可以设置为not null,并加唯一索引,包括第三方登陆也要强绑定手机号。如果业务上不是必须的,那么建议用null,此时加唯一索引时,null不受唯一索引约束。
查看全部 -
ajax方法return false的目的是js冒泡事件传递思想,会传递到onclick上一层,此时把它捕获,不传递上一层。
查看全部 -
从list页面跳转到详情页面,在详情页面获取id
查看全部 -
jdk8新特性 stream.map().collect(Collectors.toList)
对象列表 - >其他对象列表
查看全部 -
@CrossOrigin(allowCredentials = "true", allowedHeaders = "*") //解决跨域问题
查看全部 -
创建商品,先在itemservice写方法,之后在impl写实现。
1.入库前的校验入参
2,转化itemmodel变为dataobject。
3.写入数据库
4.返回创建完成的对象。(创建完对象要返回实体,要上游知道我们创建的是什么样的对象)
尽可能让controller层简单,service层复杂。查看全部 -
先设计领域模型。商品库存与交易流水相关,对商品表的操作就是对库存表的操作。
销量放在item表中,发生交易,通过异步方式给销量+1,不影响下单。
建完数据库,逆向工程生成对象
查看全部 -
通过springboot自带的springmvc的handlerexceptio解决通用的异常处理的方式。
对于web的系统来说,controller层的异常某种意义来说是业务处理的最后一道关口。如果controller层的异常被处理掉,那么返回前端之前会有一个很好的钩子,不处理掉用户体验会变差。
查看全部 -
通过落单减库存(而不是支付减库存)来解决超卖。
查看全部 -
mybatis-generator.xml配置文件
<context id="DB2Tables" targetRuntime="MyBatis3">
<!--数据库链接地址账号密码-->
<jdbcConnection deverClass="com.mysql.jdbc.Driver" connertionUrl="jdbc:mysql:数据库地址" userId="" passWord="" />
//生成的dataobject类存放位置
<javaModelGenerator targetPackage=“包名”targetProject="目录">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
//生成映射文件存放位置
<sqlMapGenerator targetPackage="mapping" targetProject="目录">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<javaClentGenerator type="XMLMAPPER" targetPackage="" targetProject="">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
//生成对应表及类名
<table tableName="" domainObjectName="" enableCountByExample="flase" enableUpdateByExample="flase"
enableDeleteByExample="flase"
enableSelectByExample="flase"
selectByExampleQuerId="fase"/>
查看全部 -
为了用户信息安全,密码存于另一张表,通过用户id关联
查看全部 -
跨越请求session不能共享
跨越请求解决
ajax:
xhrFields:{withCredentials:true}:允许跨域
查看全部 -
Sprint Boot 提供了通用的异常机制
定义Exceptionhandler解决未被controller层吸收的异常
使用@Exceptionhandler注解
查看全部 -
@EnableAutoConfiguration 注解 把App类当成自动装配base的类 可以基于SpringBoot 的配置
查看全部
举报