├── _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 |
--------------------------------------------------------------------------------