Groovy: anotações poderosas!
6443 단어 ptbrgroovytutorialbraziliandevs
Groovy tem algumas anotações incrívelmente poderosas que vejo serem pouco faladas por aqui. O objetivo deste post é apresentá-las: como verão elas realmente não quebram galhos, mas troncos de sequóias!
간단한 로깅
Estas anotações provávelmente todos vocês já conhecem: são o suporte que a linguagem nos oferece para os mais variados frameworks de logging que a plataforma Java tem a nos oferecer.
- para o java.util.logging
단순한 기능: 로깅 선호하는 프레임워크를 나타내는 주석 클래스 주석. Será injetado um novo atributo na sua classe chamado log que responde ao objeto Logger do seu framework. Em seguida, bista usá-lo exatamente com o faria no Java. 예를 들면 다음과 같습니다.
import groovy.util.logging.*
@Log4j //pro caso do Log4J
class Brutality {
def metodo() {
// olha aqui o seu logger
log.info "Logando!"
}
}
O nome do logger por default equivale ao da classe. 사용자 정의를 원하십니까? Fácil: bast passar uma string como valor para a anotação. 예: @Log4j("logandoBruto") para um logger chamado logandoBruto. Depois basta configurar o seu framework da maneira que preferir.
Objetos imutáveis? Fácil também.
주석 @Immutable do Groovy는 클래스의 귀속자 중 하나가 아닌 다른 이름으로 변경해야 합니다. Regra simples: sua classe deve ser do tipo final para que a regra se aplique. 당신은 무엇입니까? 단순함: 세귀어의 예는 없습니다!
import groovy.transform.*
@Immutable
final class PessoaImutavel {
String nome
String sobrenome
}
Pronto: os setters gerados quando esta classe anotada são muito parecidos com o código a seguir:
void setNome(String valor) {
if (this.nome == null) {this.nome = valor;}
}
@Memoized(Groovy 2.2)와 함께 사용하는 방법
Groovy 2.2의 최신 버전: 주석 @Memoized. O que ela faz é cachear o resultado da invocação de uma função. Deve ser aplicada naqueles seus métodos cujo resultado semper é o mesmo para um dado conjunto de argumentos, ou seja, as funções que não dependsem de efeitos colaterais.
com cuidado este recurso: aplique-o somente em funções que semper retornam o mesmo valor para um dado conjunto de paraâmetros를 사용하세요. Abaixo está um exemplo da sua aplicação:
import groovy.transform.*
class IntegratorTabajara {
@Memoized
double calculoBruto(double parametro) {
// após longo cálculo retorna o valor
}
}
Após a primeira invocação, caso o paraâmetro seja o mesmo, será retornado apenas o valor computado para aquele valor. Isto aumenta muito a performance do seu sistema quando bem aplicado(quando bem aplicado).
@ToString과 함께 문자열 형식을 대표합니다.
Pra finalizar uma anotação que vai te poupar muito tempo. Você sabe aqueles momentos em que fica escrevendo aquela função toString para retornar uma Representativeação dos seus objetos (especialmente em Grails quando queremos expô-los de uma forma bacaninha nos combos)? Há uma anotação que faz este trabalho pra você.
De novo, é simples: bast anotar sua classe com @ToString como no example abaixo:
import groovy.transform.*
@ToString
class Pessoa {
String nome
String sobrenome
}
println new Pessoa(nome:"Henrique", sobrenome:"Lobo")
// saida formatada:
// Pessoa(Henrique, Lobo)
Mais simples impossível: poupa muito tempo. :)
결론
Groovy.transform을 가져오거나 가져오는 다양한 예가 있습니까? Todas estas anotações são baseadas no recurso AST(Abstract Syntax Tree) Transformations do Groovy, que nos permite alterar o processo de compilação do código. Um recurso muito interessante sobre o qual explaino escrever em muito breve. ;)
Ah, e poupe seu tempo com estas anotações ok?
Reference
이 문제에 관하여(Groovy: anotações poderosas!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/loboweissmann/groovy-anotacoes-poderosas-4k1b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)