Groovy写业务类、框架类的那一吨好处
??? 作者:江南白衣?
??? 除了动态语言和闭包、MOP,Groovy其他的特性多是对J2SE中设计不合理的地方逐一进行修正,集合、IO、字符串操作......虽然多是星零的好处,但忽然间以整吨好处摆在面前还是挺让人感动的。? ?? 同时,Groovy完全兼容Java语法,但又提供糖糖选择的方式感觉很贴心。(Groovy唯一不支持的java语法就是Inner Class的定义和函数定义里的"throws Exception",私生子的好处啊) ??? 隐约觉得因为动态语言的无类型,还有闭包这样带着Lisp式FP的印记,加上MOP这样的机制,可能会激发更大的变革发生。 5.?集合与循环的语法 7.简化的Bean定义与赋值 ??//自动生成Getter和Setter重新使对象的属性public,对java滥用getter,setter是一种修正。 8. Object内建的反射语法 9.GPath--内置的XML语法,和Fremarker类似。 ???book = new XmlSlurper().parseText("<book writer='calvin'><title>D</title></book> 10.运算符重载 ? package com.itorgan.myappfuse.dao;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;public class CustomerDAOGroovy? extends HibernateDaoSupport{??? public insert(customer)??? {??????? getHibernateTemplate().save(customer)??? } public List getAllValid(sortColumn)??? {??????? def hql = """from Customer customer???????????????where customer.status='valid'???????????????order by ${sortColumn}"""??????? def query = getSession().createQuery(hql)??????? return query.list()??? } public boolean isUnique(customer,uniqueColumnNames)??? {??????? def params = []??????? def hql = "select count(*) from Customer customer? where? "??????? def first = true??????? uniqueColumnNames.tokenize(",").each??????? {??????????? if (!first)??????????????? hql += " or "??????????? else??????????????? first = false??????????? hql+="customer.${it}=?"??????????? params << customer.getAt(it)??????? }??????? def result = getHibernateTemplate().find(hql,params.toArray())??????? return ( result.get(0) == 0)??? }} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |