开发环境版本号
GRAILS_HOME=/workspace/javaspace/grails-2.2.0
TOMCAT_HOME=/workspace/javaspace/apache-tomcat-7.0.34
JAVA_HOME=/workspace/javaspace/jdk1.7.0_10
开发环境重装流程
1. 安装IDEA
2. 安装JDK
3. 安装Grails,版本要和SVN上的版本一致
4. 在IDEA里创建一个空项目(相当于执行了grails create-app命令)
5. 运行grails install-templates命令(web.xml在这里)
6. 从SVN check out文件夹:
1) 我创建的文件,如domain、controller下载下来
2) 我修改的文件,如Datasource.groovy等,会与默认的本地版本冲突,但不会覆盖本地文件,这时需要人工diff一下,将SVN的版本覆盖本地版本。
7. 安装插件
8. 启动测试
SVN原则:只保留我编辑过的文件,自动生成的文件没被修改过的话就不上传。
------------------华丽分割线-------------------------
公司内部需要一个OA系统,考察了一圈开源CRM啥的,功能强大到繁琐,但又缺少我们需要的功能。于是,决定重操旧业,下载了IDEA、JDK7、Grails,我来自己做一个吧,就当是对老本行的缅怀。
12-12-11
大概花了一周的空余事件,一边构思MYOA(我起的系统名字,哈哈)的Module部分,一边学习Grails的基础、回顾IDEA。总的来说,Grails真的很敏捷,也较容易上手, 自动生成出的代码就是学习最好的入口。
12-12-12
完成google subversion的配置,学习了 layout标签。至此了解了MVC三个层面最基础的“约定”。
12-12-13
解决grails+ mysql存取中文的问题
mysql CREATE SCHEMA `myoa` DEFAULT CHARACTER SET utf8 ;
DataSource.groovy url = "jdbc:mysql://localhost/myoa?useUnicode=true&characterEncoding=UTF-8"
完成Project-Company-Employee模型的设计,完成自定义约束的设定
12-12-15
深入研究了 belongsTo、hasMany、hasOne的作用
12-12-16
深入阅读了controller和gsp章节
12-12-20
掌握了layout、URLMapping的基本使用。下载了两套免费的css模版,完成主页。 发现Company-Employee-User之间出现循环FK,重新设计User,解除循环关系。
12-12-22
完成基本的create、list、show功能。 update和delete比较复杂,以后再弄。
(元旦前出差了一周,加上过了个元旦,有两周没coding了)
13-1-4
优化gsp页面,使用了 template功能,可不要把它当成简单的include哦,真是老强大,竟然可以识别到domain的继承关系(这是IDEA的功劳)。
--/template/_createdBy2.gsp
${trace.createdBy.name}
--company/show.gsp
--employee/show.gsp
引入了CKEditor富文本编辑器,再次被Grails的插件系统震惊,第三方框架都被视为插件,安装、管理起来非常方便。
13-1-6 css是下载的模版,但是还是需要整理一下,折腾了两天,头都晕了,前端不是俺强项呀。还要兼顾浏览器的兼容性。。。把margin, padding先归零是个好办法。
13-1-7 雏形已经有了,目前有两个技术难点:权限控制,这个好难呀。并发更新,这个应该可以利用grails自带的version(乐观锁)来实现。
13-1-8 官方文档是个好东西,看了一下12章关于安全的内容
引用
12.1Securing Against Attacks 列举了一些网站攻击的例子,从各种注入到钓鱼网站
12.2Encoding and Decoding Objects 编码、解码对象
12.3Authentication 认证方式:简单的可以通过filter或interceptor实现,复杂的就用安全框架
12.4Security Plugins
12.4.1Spring Security
12.4.2Shiro
12.2Encoding and Decoding Objects 编码、解码对象
12.3Authentication 认证方式:简单的可以通过filter或interceptor实现,复杂的就用安全框架
12.4Security Plugins
12.4.1Spring Security
12.4.2Shiro
13-1-9 完成在三种环境下的部署:mac、windows、linux (tomcat+mysql)
13-1-19 又出了一周的差,加上把mac弄坏了,暂时没电脑coding了。不过今天的重大成果是申请到了阿里云的主机试用,把 系统部署上去了,好有成就感。
13-1-21 完成利用excel导入数据的功能,再次看到插件体系的强大
13-1-23 完成报销模块的; 在云主机搭建了SVN环境,目前可以SVN下载源码,然后编译发布,并且可以连云主机上的mysql了。
13-1-24 完成上传报销明细功能;初步学习了service的使用,依赖注入。
13-1-25 利用service层,极大优化了文件上传和excel导入功能。提高代码重用,让controller不再臃肿。
13-1-26 各种优化工作:SessionTool, 验证, 自动利用excel第一行生成POI的config map。 下一步的工作重点需要引入自动化单元测试模块,不然功能一多,没有自动化测试模块,很容易出现漏洞、bug
13-1-28 学习引入shiro权限管理框架,实现功能级控制(控制uri),下一步是数据级限制(控制row)。
13-1-29 继续研究shiro,强大的Grails又成了双刃剑,好的是只需要寥寥几句,竟然就实现了“访问控制”功能; 坏处是不知其所以然,好在用IDE的单步运行,找到了一些动态方法的根源,清晰了很多。 然后又花了大半天的时间做了个permission string生成功能。
13-2-19 春节休假完毕,继续。
完成edit-update功能
完成i18n国际化,支持中英文
13-2-20 深入研究字符集,国际化。
CRM功能基本完成
13-2-27 复合索引、报销功能的数据级权限
13-2-28 集中梳理:company、employee、报销、user界面,包括国际化、权限
13-3-10 利用闭包完美优化了二级数据级权限控制的部分,闭包好方便
13-3-16 经过最后一阶段的整理、细节,正式上线。开发工作告一段落,我要去学几天Oracle了。