Você está no ambiente de teste. Suas ações aqui não afetarão o sistema.
Enviando e-mail para: ${environment.get('email_de_teste')}
~~~
## 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
import br.com.caelum.vraptor.environment.Environment;
@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
import br.com.caelum.vraptor.environment.Environment;
@Controller
public class MeuController {
@Inject @Property private String email;
public void sendMail(String email) {
sender.sendMailTo(email);
}
}
~~~
Você também pode definir um valor default para essa propriedade:
~~~
#!java
@Inject @Property(defaultValue = "config.properties")
private String fileName;
~~~