1、做文件下载时不能用ajax直接提交请求,会出现无法下载的情况。(如果一定要用ajax你可以在ajax提交请求成功之后加一个a标签或者location用来下载)。
2、需要用到数据来自数据库中各个表,而每个表中数据不是太大时建议用联表查询实现,经过本人实践这样查询速度较快。而如果表中数据较大时不建议用链表查询,用单表查询再用Java整合比较好。
3、要使用一个对象,请先判断该对象是否为空,此处新手较容易出现问题。
4、在构建期间处理需求变更,我们需要确保每一个人都知道需求变更的代价。客户只要想到一个新功能就会很兴奋。在兴奋时血液会涌向大脑,人会晕头晕脑,他会把所有我们开过的讨论需求的会议、签字仪式,以及已经完成的需求文档统统抛诸脑后。最简单的对付这种新功能中毒症患者的办法是说:“咦,这听起来是个很不错的注意。不过由于他不是需求文档里的内容,我会整理一份修订过的进度表和成本估计表,这样你可以决定是现在实施,还是过一阵子再说。”“进度”和“成本”这两个字眼比咖啡和洗冷水澡都要提神,许多“必须要有/must haves”很快变成“有就最好/nice to haves”。(摘录自代码大全Ⅱ很有趣的一本书)
5、串行化隐喻为火车过山洞,字节数据就是一节一节的车厢,它们是排成一串,依次经过山洞的。串行化就是将字节数据按一定格式排列。如二进制、json都是串行化的一种体现。
6、换个角度思考非常重要!(思考的角度错了,再怎么努力也只是在错误的道路上越走越远!)
7、WebSocketServer类中有@Transactional注解会造成@ServerEndpoint:Failed to register @ServerEndpoint class以及javax.websocket.DeploymentException: Cannot deploy POJO class之类的问题;所以应该把@Transactional注解加到Controller层去。哈哈哈!很傻的问题,犯的时候一脸懵逼。其实是因为把饭往鼻孔里塞了!嘿嘿嘿!
8、学习spring事务最重要的两个核心类分别为:PlatformTransactionManager和TransactionInnterceptor,他们管理着事务的创建和提交等一系列操作。
9、虚拟机NAT模式可以访问外部网络,但是不能访问局域网内其他机器。如果不需要链接外网而之访问局域网内其他机器可以直接用桥接模式。
10、业务逻辑层之间不要进行水平调用,可能会出现循环依赖等问题,正确的做法应该是垂直调用,如业务逻辑层调用数据访问层。其实还有一种好的解决方案,就是将业务逻辑层的公共逻辑层下沉单独作为一层,这样业务逻辑层就可以调用公共逻辑层而不会出现循环依赖了。
11、当日志频繁多次出现同一类型的报错时,日志会只打印异常类名,而不打印堆栈信息。
12、mysql建表一条建议:大家在mysql建表时,如果遇到表中存在另一张表的id时,需要考虑给该id字段加索引(同理一些关联字段)
如有不足之处,请帮忙指出!互相学习、进步!