Você está no ambiente de teste. Suas ações aqui não afetarão o sistema.
Enviando e-mail para: ${environment.get('email')}
~~~
## Acessando arquivos de configuração de acordo com o environment
Se você precisa acessar um arquivo de configuração diferente para suas bibliotecas, de acordo com seu ambiente, você também pode utilizar o Environemnt. Basta colocar, por exemplo, seu `hibernate.cfg.xml` em diretórios com o nome de seus ambientes: *development* e *production* (por exemplo). `Environment.getResource(...)` retornará o resource de acordo com seu ambiente atual:
~~~
#!java
cfg = new AnnotationConfiguration();
cfg.configure(environment.getResource("/hibernate.cfg.xml"));
~~~
Para manter compatibilidade com quem não utilizava o environment, caso o arquivo não seja encontrado
no diretório com o nome do ambiente, ele será carregado no diretório root (do classpath).
## Injetando o valor de suas configuração programaticamente
Você também consegue injetar suas configurações programaticamente usando o `@Property`, por exemplo:
~~~
#!java
@Controller
public class MeuController {
@Inject
@Property("email")
private String email;
public void sendMail(String email) {
sender.sendMailTo(email);
}
}
~~~
Neste caso, se o seu environment estiver com valor `DEVELOPMENT`, vai injetar o valor que corresponde a chave *email* do arquivo `development.properties`, se estiver com `PRODUCTION` do `production.properties` e assim por diante. Dessa forma você não precisa dos ifs como: `if(environment.isDevelopment()) {...}` em seu código.
Outra facilidade, é que se o nome da chave for o mesmo nome do field injetado, como em nosso caso com a chave *email*, você pode deixar apenas o `@Property` que o nome será inferido. Seu controller ficaria assim:
~~~
#!java
@Controller
public class MeuController {
@Inject
@Property
private String email;
public void sendMail(String email) {
sender.sendMailTo(email);
}
}
~~~
Você também pode definir um valor padrão para essa propriedade:
~~~
#!java
@Inject
@Property(defaultValue = "config.properties")
private String fileName;
~~~