研究了一下午的外部配置文件,还是没明白。

oksonic 2008-06-17
是不是要自己写一个类来读配置文件?
仅仅编写一个资源文件并不起任何作用,

// grails.config.locations = [ "classpath:${appName}-config.properties",
// "classpath:${appName}-config.groovy",
// "file:${userHome}/.grails/${appName}-config.properties",
// "file:${userHome}/.grails/${appName}-config.groovy"]
这一段配置也已经开启了
right 2008-06-17
可以看看源码,就清楚了。

我照着acegi的配置文件,写了我的email配置文件

conf/EmailConfig.groovy
email{
	enabled=false
	authName = "xxxxxxx@gmail.com"
	authPass="xxxxxxx"
	from = "******@gmail.com"
	TLS= true
	SslSmtpPort = "465"
	SmtpHost = "smtp.gmail.com"
}


//使用代码 service/EmailService.groovy
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
class EmailService {
    private emailConfig
    /**
      * Load the security configuration.
      * @return  the config
      */
    ConfigObject getSecurityConfig() {
        if (emailConfig == null) {
            GroovyClassLoader classLoader = new GroovyClassLoader(getClass().getClassLoader())
            emailConfig = new ConfigSlurper().parse(classLoader.loadClass('EmailConfig'))
        }
        return emailConfig
    }
    boolean transactional = true
    
    //FIXME new thread
    def send(email) {
        def config = getSecurityConfig();
        if (config.email.enabled) {
            def el = new SimpleEmail();
            
            el.setSslSmtpPort("" + config.email.SslSmtpPort);
            el.setTLS(config.email.TLS);
            el.setHostName(config.email.SmtpHost);
            //FIXME
            el.setAuthentication(config.email.authName, config.email.authPass);
            el.setFrom(config.email.from);
            el.addTo(email.to);
            el.setSubject(email.subject);
            el.setMsg(email.text);
            el.send();
        }
    }
}

oksonic 2008-06-18
看不明白

相关讨论