专栏首页Java3y纳税服务系统总结

纳税服务系统总结

纳税服务系统总结

纳税服务系统是我第一个做得比较大的项目(不同于javaWeb小项目),该项目系统来源于传智Java32期,十天的视频课程(想要视频的同学关注我的公众号就可以直接获取了)

我跟着练习一步一步完成需求,才发觉原来Java是这样用来做网站的,Java有那么多的类库,页面的效果(图表、日期选择器等等)是通过JavaScript组件来显示,调用后端代码来获取数据从而显示出来的。

通过这次的项目开阔了我的视野,也解决了我当初学习Java时很多的疑问,自己练习完我将项目的代码放到了GitHub中:https://github.com/ZhongFuCheng3y/NSFW_Systen,同时在练习的过程中也用博文记录下来了,一共7篇。

练习时截取部分的gif:

该项目涉及到的知识:

  • Struts2,Spring,Hibernate
  • JSP
  • Javascript,jQuery,AJAX
  • 某些工具类及组件如(FileUtil,POI,DateUtils)
  • JS组件:日期组件、富文本编辑器、Fusionchart(图表组件)
  • 抽取Action、Service、Dao,全局异常处理
  • 权限控制的模型设计(用户、角色、权限)
  • 数据回显和分页
  • Hibernate逆向工程
  • Quartz定时调度工具

写这篇博文的目的也是为了总结一下在这次项目中学到了什么东西,除了上面这些知识点大纲,还有很多实用的小技巧

  • JSP重复的代码最好抽取出来,用到的页面再重新include进去就行了
  • 多用一些常用的工具类(FileUtil,DateUtils),简化我们的开发
  • 在前端页面上想要达到一些绚丽的效果(自己很难写出来和功能比较复杂那种),找找有没有对应的组件来使用(日期组件、富文本编辑器、Fusionchart)。
  • 同理,在后端也是一样。Java操作Excel有对应的组件POI等,Java实现"自动处理"有Quartz开源框架
  • AJAX无刷新特定能干很多的功能
  • 三层架构(Controller、Service、Dao)的代码很多都能够抽取出来,Controller抽取的是通用的属性和方法,Service抽取的是相同的业务方法,Dao层抽取CURD通用方法
  • 统一处理异常能够提高系统的健壮性,避免异常信息给到用户看(用户也看不懂,发生错误应该提示友好的提示)
  • 在设计模型对象关系时,如果功能简单的话也不用“死板”地创建对象,创建表,看能不能用常量(集合)来代替
  • 在修改多个数据的时候可以换个思路:先把原有的数据删除了,再增加用户勾选的记录(达到修改的效果)
  • 在页面上定位一个标签,我们可以使用特殊的前缀+上我们的Id
  • 在条件查询的时候,尽量把like字段的数据放在后边,以提高我们的查询性能!当在数据库查询时,如果某些数据是不存在但有这个字段时,想想能不能用左外连接查询
  • 在Struts2指定name为root的话,我们可以指定哪个属性是返回JSON格式的。
  • 要是使用到日历的话,我们想到使用Calendar这个日历类

上面仅仅是我个人总结的要点,如果有错误的地方还请大家给我指正。

本文分享自微信公众号 - Java3y(gh_085b56c42174)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Java】几道让你拿offer的面试题

    之前在刷博客的时候,发现一些写得比较好的博客都会默默收藏起来。最近在查阅补漏,有的知识点比较重要的,但是在之前的博客中还没有写到,于是趁着闲整理一下。

    Java3y
  • 真没想到!三十步才能完成bean实例的创建

    本文已收录至我的GitHub 在容器启动快完成时,会把所有的单例bean进行实例化,也可以叫做预先实例化。 这样做的好处之一是,可以及早地发现问题,及早的抛出...

    Java3y
  • 初学者学Java常遇到的问题,我都给你回答了!

    看到了这个问题,就想起了我在大学自学的时候有同样的问题,现在工作了,来写写自己的看法,希望对广大的初学者有所帮助。

    Java3y
  • 一篇带你看懂Flutter叠加组件Stack

    Stack未定位的子组件大小由fit参数决定,默认值是StackFit.loose,表示子组件自己决定,StackFit.expand表示尽可能的大,用法如下:

    老孟Flutter
  • React Native组件(二)View组件解析

    前言 了解了RN的组件的生命周期后,我们接着来学习RN的具体的组件。View组件是最基本的组件,也是首先要掌握的组件,这一篇我们来学习View组件。 1.概述...

    用户1269200
  • 《精通react/vue组件设计》之5分钟实现一个Tag(标签)组件和Empty(空状态)组件

    本文是笔者写组件设计的第五篇文章,之所以会写组件设计相关的文章,是因为作为一名前端优秀的前端工程师,面对各种繁琐而重复的工作,我们不应该按部就班的去"辛勤劳动"...

    徐小夕
  • 新痛点:APT组织PawnStorm 0Day如何绕过Java点击播放保护

    几个月以前,趋势科技发现了APT组织Pawn Storm利用之前未经披露的Java漏洞(CVE-2015-2590)进行攻击。在那之后,我们注意到一个被用于染过...

    FB客服
  • Vue 在父(子)组件引用其子(父)组件方法和属性

    <button @click="callChildMethod()">父组件调用子组件方法</button>

    授客
  • React Native项目组织结构介绍

    代码组织: 目录结构: . ├── components //组成应用的各个组件 │   ├── Routers.android.js //每个组...

    xiangzhihong
  • Java没有创新了吗?Java 13提供可提高生产率和效率的功能

    在其CodeOne会议上,Oracle解释了Java SE 13正式发布后Java的快速发布周期如何带来创新。

    gemron的空间

扫码关注云+社区

领取腾讯云代金券