Busca Google

Singleton no Java

O padrão de projeto Singleton é um padrão que tem como objetivo garantir que apenas uma única instância da classe alvo é criada. É um dos padrões de projetos mais utilizados. Outro fator interessante do uso do Singleton é quando precisamos ter um único ponto de acesso global para a instância de classe. Por exemplo, alguma classe que possui dados de configuração que são únicos para toda a aplicação.

««« Clique aqui para ler o restante do conteúdo: Singleton no Java »»»

Encontrando JAR à partir do nome da classe

Um problema que sempre atormentou minha vida foi tentar descobrir em qual JAR está uma determinada classe. Até o momento eu recorria ao http://www.findjar.comhttp://www.jarfinder.com/ ou Google. O problema é que nem sempre o JAR é encontrado ou está em versão errada. Para resolver esse tormento resolvi criar um programinha que consiste em buscar à partir de um caminho todos os arquivos JAR e procurar dentro dele à classe que eu quero.

««« Clique aqui para ler o restante do conteúdo: Encontrando JAR à partir do nome da classe »»»

Re-lançamento de erro mais preciso e possíveis problemas (Java 7)

Ao capturar e lançar os erros capturados o Java 7 tem uma verificação mais precisa. Ele consegue descobrir em tempo de compilação quais são os erros mais específicos e ao invés de fazer o lançamento de um erro genérico, você pode fazer o lançamento dos erros específicos. Esse recurso é conhecido como: more precise rethrow. Parece meio complicado de se entender, mas na prática é mais simples. Então vamos ver um exemplo.

««« Clique aqui para ler o restante do conteúdo: Re-lançamento de erro mais preciso e possíveis problemas (Java 7) »»»

Diamante no Java (Java 7)

Continuando nossa sequencia de posts do Java 7, vamos abordar agora o uso do diamante <>. Com esse operador eliminamos a necessidade de redundâncias dos tipos em classes parametrizadas. Na especificação do Java 7 está descrito como um melhoria na inferência de tipos na criação de instâncias de genéricos.

««« Clique aqui para ler o restante do conteúdo: Diamante no Java (Java 7) »»»

Multi-catch (Java 7)

Algo chato que tínhamos que fazer nas versões anteriores de Java era o tratamento individual de cada exceção ou utilizar uma classe mais abrangente (Exception, por exemplo) para realizar o tratamento de todas as possíveis exceções. Nessa versão podemos colocar dentro de um único catch, várias Exceptions apenas separando pelo “ou” (pipe “|”). De maneira sucinta, podemos transformar isso:
««« Clique aqui para ler o restante do conteúdo: Multi-catch (Java 7) »»»

Fechar recursos automaticamente (Java 7)

O Java 7 possui uma funcionalidade interessante para diminuir um pouco o código e evitar problemas em locais onde recursos precisam ser fechados (conexão com banco, manipulação de arquivos, sockets, streams em geral, …). Essa funcionalidade é conhecida como try-with-resources.

Antes do Java 7, para ler um arquivo tínhamos que fazer o seguinte:

««« Clique aqui para ler o restante do conteúdo: Fechar recursos automaticamente (Java 7) »»»

Números Binários e com underscore (Java 7)

Na versão 7 do Java, além de representar número decimais, hexadecimais e octais, podemos representar números binários e separar os dígitos com underscore (_).

Pontos importantes:

  1. O underscore não pode aparecer imediatamente após 0x, 0X , 0b ou 0B
  2. O underscore não pode aparecer antes do primeiro dígito e nem após o último dígito
  3. Um número binário começa sempre com 0B ou 0b e só aceita valores 0 e 1 (binário, duh! :D )
  4. A utilizar o P, p , E ou e para representação com expoente (binário e decimal), pode-se utilizar underscore, mas seguindo a regra 2 para o expoente.

««« Clique aqui para ler o restante do conteúdo: Números Binários e com underscore (Java 7) »»»

String no Switch (Java 7)

No Java 7, temos um recurso bastante interessante que é o uso de String no bloco switch. Na minha opinião, é um recurso útil que demorou bastante para ser incorporado na linguagem.

Pontos importantes:

  1. É proibido o uso de null nas cláusulas case
  2. O uso de null na verificação do switch irá gerar um NullPointerException
  3. Os elementros utilizados nas cláusulas case tem que ter o modificador final
  4. Não é permitido valores duplicados no case

««« Clique aqui para ler o restante do conteúdo: String no Switch (Java 7) »»»

Telnet via WebService

Em vários projetos, é necessário integração com legado (sistema antigo que o cliente não quer migrar). E em alguns casos específicos essa integração pode ser um pouco mais complicada do que leitura de arquivos textos, troca de informações em base e afins. Nesse post eu irei explicar como criar um Web Service que faz a autenticação em um servidor Telnet e executa comandos nesse servidor. Essa é mais uma maneira (não tão convencional) de se realizar integração com legado.

Como client de Telnet, iremos utilizar a biblioteca Commons Net da Apache. Faça o download nesse site, descompacte-a e localize o jar da biblioteca. Crie um projeto e adicione as duas libs (jars) no classpath (build path no Eclipse e libraries no JDeveloper e Netbeans). Crie um WebService (JAX-WS) conforme o exemplo abaixo:

««« Clique aqui para ler o restante do conteúdo: Telnet via WebService »»»

Visualizando a árvore JNDI no WebLogic Server

Em alguns casos você precisa ver se o objeto que você está recuperando foi publicado no JNDI ou é necessário procurar por objetos na árvore JNDI. Por exemplo, verificar se o JNDI de um Data Source criado está disponível no servidor (pode não estar por um target errado) ou verificar o caminho para recuperar um destination de um módulo JMS, entre outros.

Para visualizar a estrutura JNDI do WebLogic. Acesse o console (http://IP:PORTA/console) vá em Environment, Servers, selecione o servidor desejado e clique em View JNDI Tree. Está meio escondido, mas pela imagem abaixo fica mais fácil achar:

View JNDI Tree

View JNDI Tree

Irá abrir uma nova janela onde você visualizar toda estrutura JNDI do server selecionado.

Próxima Página »