小编Ale*_*sey的帖子

静态最终变量的Java命名约定

有一条规则说:

表示常量(最终变量)的名称必须全部使用下划线来分隔单词(取自http://geosoft.no/development/javastyle.html)

这适用于原始类型,如int或字符串:

private static final int MAX_COUNT = 10;
Run Code Online (Sandbox Code Playgroud)

但是什么是非原始类型?在大多数情况下,我见过以下内容:

private static final Logger log = Logger.getLogger(MyClass.class);
Run Code Online (Sandbox Code Playgroud)

或者在单例中,实例变量不是大写的.

问题是声明这些类型的变量(如日志和实例)的正确方法是什么?

java coding-style

89
推荐指数
5
解决办法
13万
查看次数

在grails中使用服务的最佳方式是什么?

我刚刚开始了一个关于grails的项目,但没有找到如何使用依赖注入和接口来处理服务.

正如我在创建服务时在文档中看到的那样 - 它只是一个groovy类,可以在任何我想要的地方自动连接.

但是,如果我想拥有一个服务接口并注入其实现之一,就像我在Java中使用spring一样?

例如,我想要一个服务界面.让它成为MyService.groovy它将有1个方法doSmth(),我将有2个实现 - MyServiceImpl1.groovy和MyServiceImpl2.groovy

我有一个石英工作做这样的事情def myService myService.doSmth()

我应该把groovy接口(文件夹)放在哪里?我可以在src/groovy中为它创建一个包吗?如何配置resources.groovy连接"myService"与1个服务实现?

任何想法都表示赞赏

提前致谢!

grails groovy dependency-injection

3
推荐指数
1
解决办法
793
查看次数

用于域类的Grails自定义验证器

我有一个限制,所以只能 ConfigurationHolder.config.support.reminder.web.person.max存储对象.我没有找到如何添加与特定属性无关的验证器.所以现在我以这种方式实现它.你们有什么想法让它变得更好吗?

package support.reminder.web

import org.codehaus.groovy.grails.commons.ConfigurationHolder;

class Person {

    String firstName
    String lastName
    String email
    Date lastDutyDate

    static constraints = {
        firstName(blank: false)
        lastName(blank: false)
        email(blank: false, email: true)
        lastDutyDate(nullable: true)
        id validator: {val ->
        if (val)
            Person.count() <= ConfigurationHolder.config.support.reminder.web.person.max
        else
            Person.count() < ConfigurationHolder.config.support.reminder.web.person.max
    }
    }

    String toString() {
        "[$firstName $lastName, $email, $lastDutyDate]"
    }
}
Run Code Online (Sandbox Code Playgroud)

grails grails-validation grails-domain-class

3
推荐指数
1
解决办法
7182
查看次数