├── _config.yml ├── frameworks-java.md └── README.md /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-midnight -------------------------------------------------------------------------------- /frameworks-java.md: -------------------------------------------------------------------------------- 1 | # Frameworks Java 2 | Veja aqui um glossário dos principais frameworks Java 3 | 4 | *Esse texto é um documento em constante edição, e pode ser alterado no futuro.* 5 | 6 | 7 | ---------- 8 | 9 | Container IoC 10 | ------------- 11 | 12 | - Spring – 13 | - Guice – 14 | - PicoContainer – 15 | - EJB – 16 | - CDI – 17 | 18 | 19 | Persistência 20 | ------------ 21 | 22 | - Hibernate – [http://www.hibernate.org/](http://www.hibernate.org/) 23 | - Spring Data – [http://www.springsource.org/](http://www.springsource.org/) 24 | - iBatis – [http://www.mybatis.org/](http://www.mybatis.org/) 25 | - Torque – [http://db.apache.org/torque/](http://db.apache.org/torque/) 26 | - Castor – [http://www.castor.org/](http://www.castor.org/) 27 | - Cayenne – [http://cayenne.apache.org/](http://cayenne.apache.org/) 28 | 29 | Gerenciador de transação 30 | ------------------------ 31 | 32 | - Spring AOP transaction – 33 | - EJB (JTA) – 34 | 35 | Agendamento de tarefas 36 | ---------------------- 37 | 38 | - Timer Task JSE – 39 | - Quarts – 40 | - EJB Timer Service – 41 | 42 | Validação 43 | --------- 44 | 45 | - Commons Validator – 46 | - Java Bean Validator – 47 | 48 | Chamadas assíncronas 49 | -------------------- 50 | 51 | - JSE Executor Services 52 | - EJB Asynchronous Method Invocation 53 | 54 | - EJB Message-Driven Bean – 55 | 56 | 57 | Kit de interface gráficas desktop 58 | --------------------------------- 59 | - Swing – 60 | - SwingX – 61 | - JGoodies – 62 | - SWT – 63 | - SWT OPAL – 64 | 65 | 66 | RAD interface gráficas desktop 67 | ------------------------------ 68 | - Eclipse Windows Builder – 69 | - NetBeans Matisse – 70 | 71 | 72 | Framework web 73 | ------------- 74 | - Click – 75 | - Wicket – 76 | - Spring MVC – 77 | - Struts – 78 | - Mentawai – 79 | - JSF – 80 | - VRaptor – 81 | 82 | 83 | Framework web RIA 84 | ----------------- 85 | 86 | - GWT – 87 | - Vaadin – 88 | - ZK Framework – 89 | 90 | 91 | Framework web full stack 92 | ------------------------ 93 | - Grails – 94 | - Ruby On Rails – 95 | - OpenXava – 96 | 97 | 98 | Provedores de JSF 99 | ----------------- 100 | - Mojorra – 101 | - MyFaces – 102 | - ADF – 103 | 104 | 105 | Componentes JSF 106 | --------------- 107 | 108 | - RichFaces – 109 | - PrimeFaces – 110 | - OpenFaces – 111 | - IceFaces – 112 | - EasyFaces – 113 | - Gmaps4jsf – 114 | 115 | 116 | Extensões JSF 117 | ------------- 118 | - PrettyFaces – 119 | - Omnifaces – 120 | 121 | Soluções web mobile 122 | ------------------- 123 | - JSF RichFaces Mobile – 124 | - JSF PrimeFaces Mobile – 125 | - JSF OpenFaces Mobile – 126 | - JSF IceFaces Mobile – 127 | - Spring Mobile – 128 | - JQuery Mobile – 129 | - DOJO Mobile – 130 | 131 | 132 | Autenticação e autorização web 133 | ------------------------------ 134 | 135 | - Spring Security – 136 | - JGuard – 137 | - Java EE Container Managed Security (Configuração especifica para cada provedor de container JEE). 138 | - Veja o Tomcat – 139 | 140 | 141 | Java EE web container standalone 142 | ---------------------------- 143 | 144 | - Tomcat – 145 | - Jetty – 146 | - JBoss/Wildfly – 147 | 148 | 149 | Java EE EJB container (web profile e Java EE Full) 150 | ------------------------------------------ 151 | 152 | 153 | - Tomee – 154 | - Simpas – 155 | - Resin – 156 | - JBoss/Wildfly – 157 | - Glassfish – 158 | - Payara - 159 | - Webshere – 160 | - WebLogic – 161 | - Geronimo – 162 | 163 | Relatórios 164 | ---------- 165 | - iReport – 166 | - DynamicReport – 167 | - Birt – >http://www.eclipse.org/birt/phoenix/> 168 | - iText – 169 | - PDFBox – 170 | 171 | 172 | Gerador de gráficos charts 173 | -------------------------- 174 | - JFreechart – 175 | - HighCharts – 176 | 177 | 178 | Web Services REST 179 | ----------------- 180 | 181 | - Jersey – 182 | - Restlet – 183 | - RestEasy – 184 | - Serfj – 185 | - CXF – 186 | 187 | 188 | 189 | Gerenciador de e-mails 190 | ---------------------- 191 | - Commons Email – 192 | - JavaMail – 193 | 194 | 195 | 196 | Web Services SOAP 197 | ----------------- 198 | - Metro – 199 | - Axis – 200 | - XFire – 201 | - CXF – 202 | 203 | 204 | JavaScript 205 | ---------- 206 | - DOJO Toolkit – 207 | - JQuery – 208 | - Ext-JS – 209 | - DWR – 210 | 211 | Integração com redes sociais 212 | ---------------------------- 213 | - Spring Social – 214 | 215 | Cache 216 | ----- 217 | - Space4J – 218 | - Memcache – 219 | - Ecache – 220 | - Redis - 221 | - Prevayler – 222 | - JBoss Infinispan – 223 | 224 | NoSQL 225 | ----- 226 | - MongoDB – 227 | - Neo4j – 228 | - Db4o – 229 | - MemcachedDB – 230 | - CouchDB – 231 | - Project Voldemort – 232 | - MarkLkogic Server – 233 | - BaseX – 234 | - SimpleDB – 235 | - HBase – 236 | - Casandra – 237 | - Hypertable – 238 | - OrientBD – 239 | 240 | SGDB Java embutidos 241 | ------------------- 242 | - HyperSQL – 243 | - JavaDB – 244 | - Apache Derby – 245 | - H2Database – 246 | 247 | 248 | Testes 249 | ------ 250 | - DBUnit – 251 | - JUnit – 252 | - EJBUnit – 253 | - JSFUnit – 254 | 255 | 256 | Logging 257 | ------- 258 | - jse – 259 | - Log4J – 260 | 261 | Testes cargas e perfomance 262 | -------------------------- 263 | - JMeter – 264 | - WebLoad – 265 | 266 | JSON 267 | ---- 268 | - JSON – 269 | - XStream – 270 | - Google-JSON – 271 | - Jackson - 272 | 273 | Boletos bancário 274 | ---------------- 275 | - Boletos Bancário – 276 | - Bopepo – 277 | - Stella – 278 | 279 | Manipulaçao de arquivos MS Office 280 | --------------------------------- 281 | - Apache POI – 282 | - JExcelApi – 283 | - Docx4j – 284 | - Java Docx – 285 | - Aspose – 286 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Glossário Java 2 | O objetivo deste glossário é descrever o significado de vários termos que compõem o todo o ecossistema da linguagem Java. 3 | 4 | **Observação:** Esse Glossário está em construção, portanto pedimos a sua compreensão. E caso você queira contribuir, basta entrar em contato com o SouJava. 5 | 6 |

7 | 8 |

9 | 10 | ---------- 11 | 12 | * [O que é a linguagem Java?](#o-que-é-a-linguagem-java) 13 | * [O que é a JVM?](#o-que-é-a-jvm) 14 | * [O Java é Multiplataforma?](#o-java-é-multiplataforma) 15 | * [O que é um arquivo com a extensão ".java" ?](#o-que-é-um-arquivo-com-a-extensão-java-) 16 | * [O que é um arquivo com a extensão ".class" ?](#o-que-é-um-arquivo-com-a-extensão-class-) 17 | * [O que é um arquivo com a extensão ".jar" ?](#o-que-é-um-arquivo-com-a-extensão-jar-) 18 | * [O que é um arquivo com a extensão ".war" ?](#o-que-é-um-arquivo-com-a-extensão-war-) 19 | * [O que é um arquivo com a extensão ".ear" ?](#o-que-é-um-arquivo-com-a-extensão-ear-) 20 | * [O que é uma "api" ?](#o-que-é-uma-api-) 21 | * [O que é o método "main" ?](#o-que-é-o-método-main-) 22 | * [Como iniciar no desenvolvimento Java?](#como-iniciar-no-desenvolvimento-java) 23 | 24 | Antes de descrever os vários termos do glossário, é importante falar sobre algumas informações basicas sobre o Java: 25 | 26 | ## O que é a linguagem Java? 27 | 28 | O Java é uma linguagem que utiliza o paradigma de orientação a objetos para o desenvolvimento de software. 29 | 30 | ## O que é a JVM? 31 | 32 | A Java Virtual Machine (JVM) é o ambiente responsável por rodar todos os sistemas desenvolvidos na linguagem java. 33 | 34 | ## O Java é Multiplataforma? 35 | 36 | Sim. O Java é multiplataforma. A linguagem permite que o software escrito na linguagem java seja compilado e interpretado em qualquer sistema operacional. 37 | 38 | ## O que é um arquivo com a extensão ".java" ? 39 | 40 | É o arquivo que contém o código fonte escrito na linguagem Java. 41 | 42 | ## O que é um arquivo com a extensão ".class" ? 43 | 44 | É um arquivo criado após a compilação de um arquivo com a extensão ".java" 45 | Após a compilação, o arquivo com a extensão ".class" já encontra-se disponível para ser interpretado pela JVM. 46 | 47 | ## O que é um arquivo com a extensão ".jar" ? 48 | 49 | É um arquivo compactador de outros arquivos, e que é utilizado no desenvolvimnento Java. O conteúdo de um arquivo com a extensão ".jar" pode ser classes Java e/ou outros tipos de arquivos. Exemplo: arquivos com a extensão ".xml". 50 | 51 | ## O que é um arquivo com a extensão ".war" ? 52 | 53 | É um arquivo compactado que contém uma aplicação java e todo o seu respectivo conteúdo: arquivos HTML, classes Java, arquivos JavaScript e todos e os demais arquivos necessários para o funcionamento de uma aplicação WEB. 54 | 55 | ## O que é um arquivo com a extensão ".ear" ? 56 | 57 | É um arquivo compactado que contém uma aplicação java e todo o seu respectivo conteúdo para uma aplicação Java EE. 58 | 59 | ## O que é uma "api" ? 60 | 61 | É um conjunto de classes agrupadas, que podem ser fornecidas pela especificação Java (ou criadas pelo próprio desenvolvedor) e que podem ser utilizadas em algum determinado momento para auxiliar o desenvolvimento de uma aplicação Java. 62 | Muitos desenvolvedores criam suas próprias apis e disponibilizam na internet, com o intuito de ajudar desenvolvedores que possam ter tido o mesmo problema que ele, até a construção da sua própria api. 63 | 64 | ## O que é o método "main" ? 65 | 66 | É o método responsável por executar toda a lógica da aplicação Java. 67 | 68 | ## Como iniciar no desenvolvimento Java? 69 | 70 | Para maiores informações sobre como se tornar um desenvolvedor na linguagem Java, acesse o site oficial no seguinte endereço: 71 | 72 | 73 | ### _Termos do Glossário Java_ 74 | 75 | * **JDK**: É o kit oficial de desenvolvimento para a linguagem Java. É necessário realizar o download do mesmo e instalá-lo. O Kit contém o ambiente de desenvolvimento e também a JVM para rodar os sistemas desenvolvidos na linguagem java. 76 | * **Java SE**: É o ambiente Java voltado para o desenvolvimento de aplicações desktop. 77 | * **Java EE**: É o ambiente Java voltado para o desenvolvimento de aplicações WEB. 78 | * **Java ME**: É o ambiente Java voltado para o desenvolvimento de aplicações móveis e integrados. 79 | * **IDE**: É uma ferramenta gráfica utilizada por muitos desenvolvedores, afim de facilitar o desenvolvimento de aplicações. comumente, os desenvolvedores Java utilizam o Eclipse ou o Netbeans. 80 | 81 | * **JAVA_HOME** : É o diretório da pasta aonde encontra-se a instalação do Java. Esse caminho é inserido como uma variável de ambiente no sistema operacional. 82 | 83 | * **CLASSPATH** : É o diretório atribuído a JAVA_HOME/bin. Esse caminho é inserido no PATH do sistema operacional. 84 | 85 | * **Orientação a Objetos** : É o paradigma de desenvolvimento de sodtware utilizado pela linguagem Java. O conceito de orientação a objetos tem como característica, a facilidade no reaproveitamento de código para a mesma ou futuras aplicações. 86 | 87 | * **Classe** : É uma coleção de dados compostos por seus atributos e métodos. Uma classe é um modelo para a criação de um objeto. 88 | 89 | * **Classe POJO** : São classes dedicadas a possuirem somente atributos com seus métodos setters e getters. 90 | 91 | * **Instância** : É o procidimento necessário para criar um objeto. Muito conhecido como "dar um new em uma classe Java". 92 | 93 | * **Objeto** : É construído a partir de uma classe. Ou seja, uma classe pode ser a base para a construção de diversos objetos. 94 | 95 | * **Herança** : É o mecanismo que pode ser utilizado para que uma classe herde informações de uma outra classe. 96 | 97 | * **Polimorfismo** : É capacidade de um objeto utilizar a referência de um outro objeto em tempo de execução. 98 | 99 | * **Override** : É o mecanimo de se utilizar um método de uma classe pai. Porém, com uma escrita diferente do método original. 100 | 101 | * **Modificadores** : São utilizados com intuito de gerenciar o acesso a classes, variáveis e métodos. 102 | 103 | * **Variável** : É o espaço dedicado em memória para armazenar algum dado que possa ser alterado durante a utilização do sistema. 104 | 105 | * **Constante** : É o espaço dedicado em memória para armazenar algum dado que não poderá ser alterado durante a utilização do sistema. É necessário utilizar a palavra reservada "final" na declaração da constante. 106 | 107 | * **Casting** : É a forma como é denominda a conversão de um tipo variável para um outro tipo de variável. 108 | 109 | * **Método** : É o componente responsável por executar alguma tarefa dentro de uma classe. 110 | 111 | * **Método set** : É o tipo de método que executa alguma tarefa, com a intenção de repassar valores para o sistema. Esse tipo de método não utiliza a cláusula "return" ao final. 112 | 113 | * **Método get** : É o tipo de método que executa alguma tarefa com a responsabilidade de retornar algum valor do sistema. Esse tipo de método utiliza a cláusula "return" ao final. 114 | 115 | * **Construtor** : É o componente utilizado durante a inicialização de um objeto. O construtor pode ser implícito ou explícito. 116 | 117 | * **Interface** : Uma interface contém um ou mais métodos sem as suas respectivas implementações. Cada método será implementado quando a interface for utilizada por uma classe. 118 | 119 | * **Bloco Try Catch** : É a maneira como são tratadas a erros/exceções na linguagem Java. 120 | 121 | * **Abstract** : São classes que não podem ser instanciadas mas que podem ser herdadas por outras classes. Cada classe abstrata também exige por definição, a declaração de ao menos um método sem corpo, contendo assim: apenas a sua assinatura. 122 | 123 | * **Enum** : É um recurso do Java voltado para o armazenamento de diversas constantes. Uma enum também pode conter um construtor explícito. 124 | 125 | * **Generics** : É o recurso utilizado no Java para que seja possível trabalhar com programação genérica. Com isso, classes ou interfaces podem receber um tipo genérico em tempo de execução. 126 | 127 | * **Threads** : É o recurso utlizado para se trabalhar com programação concorrente. Ou seja, duas ou mais tarefas sendo executadas ao mesmo tempo. 128 | 129 | * **Garbage Collection** : É o processo de gerenciamento de memória na linguagem Java. 130 | 131 | * **Memória Heap** : É o espaço reservado pela JVM para realizar a alocação de objetos na memória. 132 | 133 | * **Tipos primitivos** : É o tipo de valor que uma variável poderá armazenar. E os tipos primitivos podem ser: byte, short, int, long, float, double, char ou boolean. 134 | 135 | * **Import** : É o termo utilizado para importar pacotes a serem utilizados em uma classe Java. 136 | 137 | * **Package** : Local no qual são armazenadas as classes Java. Um projeto pode ter diversos pacotes. A boa prática indica que os pacotes armazenem classes de um determinado assunto. 138 | 139 | * **Design patterns** : É uma coleção de boas práticas de desenvolvimento e que são muito utilizados pela comunidade Java ao redor do mundo. 140 | 141 | * **Servidor WEB** : São ferramentas dedicadas a realização de tarefas que auxiliam o desenvolvimento WEB. Entre os servidores comumente utilizados no desenvolvimento Java WEB é o TomCat. 142 | 143 | * **Servidor de Aplicação** : São ferramentas dedicadas a realização de tarefas que auxiliam o desenvolvimento WEB e que englobam toda a especificação do JAVA EE. Entre os servidores comumente utilizados estão: JBOSS e Glassfish. 144 | 145 | * **Servlet** : É uma classe java responsável por algumas tarefas no desenvolvimento Java WEB. Tais como: recebimento e envio de requisições. 146 | 147 | * **JSP** : É uma tecnolgia utilizada do ambiente Java, que visa facilitar a criação de páginas WEB juntamente com a programação Backend do Java. 148 | 149 | * **Modelo MVC** : É um modelo de desenvolvimento de aplicações utilizado para arquitetura de software. Tal modelo é dividido em três camadas: Model, View e Controller. A camada de Modelo, representa efetivamente os dados da aplicação com suas regras de negócio. O View, representa a camada de visualização da aplicação em um dispostivo. O Controller é resposável por receber todas as requisições do usuário e gerenciá-las com o fluxo previamente determinado na aplicação. 150 | 151 | * **DAO** : É um padrão de projetos utilizado do desenvolvimento de aplicações Java. Um DAO define um modelo de abstração de acesso aos dados que estão contidos em um banco de dados. 152 | 153 | * **EJB** : É o componente da especificação JAVA EE escrito na linguagem Java e que roda no lado do servidor. O EJB encapsula a lógica de negócios. 154 | 155 | * **JavaServerFaces** : É o componente da especificação JAVA EE que auxilia o desenvolvedor Java a construir aplicaçãoes WEB baseadas em componentes gráficos. Além de ter como base, o desenvolvimento de aplicações WEB no padrão MVC. 156 | 157 | * **Java Persistence API** : É o componente da especificação JAVA EE que é voltado para o mapeamento objeto relacional no desenvolvimento de sistemas Java. 158 | 159 | * **WebServices** : É a forma de se consumir informações entre sistemas ou plataformas de desenvolvimento através da interoperabilidade. Essa comunicação pode ser baseada no uso de xml para as trocas de mensagens. 160 | 161 | * **CDI** : É componente da especificação JAVA EE que tem como função, a utilização da Injeção de Dependência em aplicações Java. Além de possuir outras característiscas que facilitam o gerenciamento do ciclo de vida de aplicações com outros componentes da especificação JAVA EE. Como por exemplo, EJB e JSF. 162 | 163 | * **JMS** : É o componente da especificação JAVA EE que é tem como foco, facilitar o envio e recbimento de mensagens entre sistemas. Facilitando assim: a criação, o envio, o recebimento e a leitura de mensagens. E tais mensagens podem ser assíncronas ou não. 164 | 165 | * **JTA** : É o componente da especificação JAVA EE que é tem como foco, o gerenciamento de transações em aplicações Java. Sua vantagem, é o gerenciamento de transações em sistemas distribuídos que possuem recursos compartilhados. 166 | 167 | * **Segurança no JAVA SE** : Algumas apis são fornecidas para gerenciar a segurança das aplicações. São elas: JAAS, Java GSS, JCE, JSSE e SASL. 168 | 169 | 170 | ### [Frameworks Java](frameworks-java.md) 171 | * [O que é o JavaServerFaces?](#o-que-é-o-javaserverfaces-) 172 | * [O que é o Hibernate?](#o-que-é-o-hibernate-) 173 | 174 | ## O que é o "javaserverfaces" ? 175 | 176 | É o componente da especificação JAVA EE que auxilia o desenvolvedor Java a construir aplicaçãoes WEB baseadas em componentes gráficos. Além de ter como base, o desenvolvimento de aplicações WEB no padrão MVC. 177 | 178 | * **Ciclo de Vida** : O JSF tem como base, um ciclo de vida bem defindo para a construção de aplicações Web. As fases que compõem esse ciclo são: Restore View, Apply Request Values, Process Validation, Update Model Values, Invoke Application, Render Response. 179 | 180 | * **Expression Language** : É utilizada em páginas HTML. Sua função é se comunicar com os managead Beans do JSF. 181 | 182 | * **Managed Beans** : São anotações utlizadas em classes Java. Sua função é facilitar a comunicacação entre arquivos HTML e classes Java, seja na inserção ou para consulta de dados do sistema. Comumente se comunica com os DAOs do sistema. Os Managed Beans também possuem definição de escopo. É necessário customizar o tipo de escopo para cada Managed Beans. 183 | 184 | * **AJAX** : O AJAX permite ao desenvolvedor, entre as muitas opções de comunicação com o servidor, a realização de atividades assíncronas. Como por exemplo, a atualização de páginas de internet de acordo com determinadas ações do usuário. Evitando assim, a necessidade de toda atualização da tela do sistema. Tornando assim, a navegabilidade do usuário mais amigável. E o melhor de tudo isso, é que o JSF já traz o Ajax incorporado em sua implementação. 185 | 186 | * **Facelet** : É o recurso utilizado para a construção de templates em aplicações Web com o JavaServerFaces. Esse recurso, evita a duplicação de código em diversas partes da aplicação. 187 | 188 | * **Conversores** : Essa funcionalidade é útil para a conversão de tipos durante uma requisição ou solicitação feita pelo usuário, por exemplo. 189 | 190 | * **Validadores** : São úteis para validar informações inseridas por um usuário. 191 | 192 | 193 | ## O que é o "hibernate" ? 194 | 195 | É um framework que tem como objetivo, utilizar o mapeamento objeto-relacional(ORM) em uma aplicação. Seja ela, uma aplicação web. Seja ela, uma aplicação desktop. 196 | Com esse tipo de mapeamento, é o possível aumentar o nível de abstração entre uma aplicação e o banco de dados. Tornando assim, a aplicação mais independente da linguagem SQL espefífica que cada banco de dados utiliza. 197 | 198 | * **persistence.xml** : É o arquivo de configuração do Hibernate. Esse arquivo contém informações essenciais para o uso do frameqork em uma aplicação. Tal arquivo deve ser preenchido corretamente com informações do tipo: qual driver será utilizado para a conexão com o banco de dados, o tipo de dialeto utilizado pelo banco de dados, a url de endereço que identifica o local do banco de dados, usário e senha que serão utilizados para se conectar com o banco, entre outras informações importante para a conexão com o banco de dados. 199 | 200 | * **@Entity** : É a anotação utilizada na classe POJO da aplicação. Dessa forma, as classes que possuírem tal anotação: serão tratadas como entidades do banco de dados. 201 | 202 | * **EntityManagerFactory** : É responsável por gerenciar e disponibilizar métodos que podem ser utilizados em transações com o banco de dados. 203 | 204 | * **Estados de Entidade** : Uma entidade pode ter assumir os seguintes estados: Transient, Managed, Detached e Remove. 205 | 206 | * **Transação** --> Ocorre quando há alguma interação da aplicação com o banco de dados. Essa interação precisa precisa de ter um início e um fim. 207 | 208 | * **Associação entre Entidades** --> Ao realizar o relacionamento entre entidades, é possível utilizar os seguintes tipos de associações: @OneToOne, @OneToMany, @ManyToOne e @ManyToMany. 209 | --------------------------------------------------------------------------------