Spring Framework (2.0) Framework para Desenvolvimento de Aplicações em Java

Tamanho: px
Começar a partir da página:

Download "Spring Framework (2.0) Framework para Desenvolvimento de Aplicações em Java"

Transcrição

1 Spring Framework (2.0) Framework para Desenvolvimento de Aplicações em Java Diego Pacheco Dez/2007 Apostila desenvolvida especialmente para a Crom Microsystems. Sua cópia ou reprodução é livre.

2

3 Sobre o Autor Diego Pacheco Técnico em Processamento de Dados e graduando em Ciências da Computação(7º sem.) na Ulbra. Já trabalhou com desenvolvimento de software em VB, ASP,.NET e PHP. Atualmente é Arquiteto de Software, certificado pela Sun, atuo desenvolvendo soluções corporativas em arquitetura JEE, provendo coaching/mentoring em software e processo de desenvolvimento de software. Gosto muito de música, tocar guitarra, jogar PSP, Bloggar, Ler e principalmente as incríveis histórias do Conan. Mantenho o blog < a mais de 3 anos.

4 Spring Framework Framework para Desenvolvimento de Aplicações Java Sumário 1. Introdução Objetivos Conceitos Básicos Cenários de uso Portifólio Download Estrutura de Diretórios Exercícios Espaço para anotações Container IoC Objetivos IoC Inversion of control Registrando Beans Singletons e lazy Initialization Lazy Initialization Scopos dos Beans Criando seu próprio scope Injeção via setter Injeção via construtor Injeção de coleções Injeção entre beans colaboradores Instanciando o contexto Web Exercícios Espaço para anotações Manipulação de Beans Objetivos Resource Loaders Init-Metohd e InitializingBean Herança de Definições Validação Bean Wrapper BeanPostProcessors Diego Pacheco I

5 Spring Framework Framework para desenvolvimento de aplicações Java BeanFactoryPostProcessors Property Editors Eventos PropertyPlaceholderConfigurer SingletonBeanFactoryLocator Internacionalização Exercicios Espaço para anotações Diego Pacheco II

6 Spring Framework Framework para desenvolvimento de aplicações Java 4. Persistência Objetivos Hierarquia de Exceptions Acesso a dados usando JDBC Trabalhando com DataSources Trabalhando com JDBCTemplate Session Factory Bean Hibernate Template Transações Declarativas Exercícios Espaço para anotações Facilitadores Objetivos Envio de s Agendamento de tarefas com JDK Task... Support Testing Support AbstractDependencyInjectionSpringContextTests AbstractAnnotationAwareTransactionalTests AbstractTransactionalDataSourceSpringContextTests Remoting com RMI Exercícios Espaço para anotações Diego Pacheco III

7 Spring Framework Framework para Desenvolvimento de Aplicações Java 1. Introdução Diego Pacheco

8 Objetivos Conhecer os conceitos básicos; Conhecer os principais cenários de uso; Prover uma visão de todo o portifólio do Spring; Saber onde baixar o Spring; Conhecer a estrutura de diretórios dos fontes. Diego Pacheco 1-2

9 Conceitos Básicos Spring framework, garanto a você que não é nenhum produto de limpeza, até pode parecer pelo nome, mas não é. Spring é um dos frameworks líderes do mercado full-stack Java/JEE. Esse framework é mantido pela empresa Interface21 que tem como presidente, Rod Johnson, o criador do Spring que é simplesmente uma das maiores autoridades em Java. Spring prove diversos benefícios para muitos projetos, aumentando a produtividade de desenvolvimento e a performance em tempo de runtime em quanto ao mesmo tempo prove uma cobertura para testes e muita qualidade para a aplicação. O Spring prove soluções light-weight para construções de aplicações corporativas. Enquanto ainda suporta e prove a possibilidade de se usar: transações declarativas, acesso remoto através de RMI ou Web Services e muitas opções para persistência de dados. O Spring prove também uma solução completa MVC Framework e maneiras transparentes e elegantes para integração de AOP ao seu software. Esse framework é extremamente modular, assim você pode usar somente as partes que lhe interessam. É possível usar IoC com Struts ou por exemplo, você pode optar por usar somente a camada de integração com Hibernate ou a camada de abstração para JDBC. Desenhado para não ser intrusivo, utilizando apenas ele mesmo ou o mínimo de dependências para suas funcionalidades. Esse framework foi muito bem dividido, e isso pode ser observado com clareza na figura a baixo. Diego Pacheco 1-3

10 Figura 1.1 Visão Geral Utilizando o Spring você já terá um ganho excelente em qualidade de software em termos de design patterns, utilizando ele praticamente anula o uso de patterns como Factory e ServiceLocator. Todo Objeto componente de sua aplicação é por default para o Spring um singleton, assim favorecendo as boas práticas e a performance. A Empresa Interface21 e com certeza o Spring tem como missão os seguintes valores: J2EE Deveria ser muito fácil de usar É melhor programar para interfaces do que para classes, Spring reduz o custo e a complexidade de usar interfaces para zero. JavaBeans oferece uma maneira excelente para configurar uma aplicação. Diego Pacheco 1-4

11 O Design OO é mais importante do que qualquer tecnologia de implementação como, por exemplo, J2EE. Exception checadas são mal utilizadas no Java. Um framework não deveria forçar você a capturar exceptions que você não está apto a se recuperar. Testabilidade é essencial, o Spring ajuda você a testar seu código mais facilmente. O Spring precisa ser prazeroso para quem desenvolve usando ele. O Código de sua aplicação deveria não depender da API do Spring. O Spring não compete com as boas soluções existentes, mas prove integração dessas tecnologias, como exemplo o Hibernate, o Spring não pretende desenvolver outra, apenas integrá-la e prover facilidades. Algumas das funcionalidades do core do Spring são: O Mais completo lightweight container: Prove centralização, automação de configuração e escrita para seus objetos de negocio. É um container não intrusivo, capaz de suportar sistemas complexos de um conjunto de componentes (POJO) de baixo acoplamento, consistência e transparência. O Container traz agilidade ao desenvolvimento e também testabilidade e uma alta escalabilidade, permitindo que os componentes de software possam ser desenvolvidos e testados isoladamente. Pode ser utilizado em qualquer ambiente de desenvolvimento J2SE ou J2EE. Uma camada comum de abstração para Transações: Permite gerenciamento transacional plugável com uma marcação transacional fácil, assim evitando pequenos problemas de baixo nível. Estratégias para JTA e para um único JDBC DataSource são incluídos. Em contraste com a JTA e o EJB CMT, as transações do spring não estão disponíveis só em ambientes J2EE, é possível utilizar em ambiente J2SE também. Uma Camada de Abstração para JDBC: Prove uma hierarquia de exceptions a partir de SQLException de maneira totalmente significativa. Simplifica o tratamento de erros, e diminuiu muito a quantidade de código a ser escrito. Nunca mais será necessário escrever um bloco finaly para usar JDBC. Integração com Toplink, Hibernate, JDO, and ibatis SQL Maps: Em termos de resource holders, suporte a implementações de DAOs e estratégias transacionais. Existe um suporte de primeira classe para Hibernate com muitas facilidades providas pelo mecanismo de IoC. Diego Pacheco 1-5

12 Funcionalidade AOP: Totalmente integrado com o gerenciamento configuracional do Spring, você pode utilizar AOP com qualquer objeto gerenciado pelo Spring, adicionando aspectos em gerenciamento transacional, por exemplo. Com Spring é possível ter transações declarativas sem EJB e até mesmo sem JTA, caso você esteja utilizando um único banco de dados em um servidor tomcat, por exemplo. Diego Pacheco 1-6

13 Cenários de uso Podemos utilizar Spring nos mais diversos cenários, desde um simples applet até mesmo nas mais complexas aplicações corporativas. Um exemplo típico de uso do Spring em uma aplicação completa Java EE onde teremos: Figura 1.2 Cenário completo de uso em JEE. Diego Pacheco 1-7

14 Uma camada de validações de formulários, soluções em upload de arquivos, bind de objetos de domínio e claro, uma integração com JSP, Velocity, XSLT, PDF e Excel. Após isso o contexto web, gerenciado pelo Spring e utilizando o Spring MVC. No cerne das aplicações o contexto principal do Spring com o container IoC e algumas funcionalidades, como envio de s e acessos remotos através de RMI, SOAP, Burlap, etc. Seguindo da camada de regras de negócio, onde temos facilidades com o módulo de AOP e a integração com o módulo de ORM, chegando finalmente na camada de persistência através do suporte rico ao Hibernate ou via JDBC. Tudo isso rodando em um container JSP/Servlet como o Tomcat ou Jetty. No caso de sua aplicação precisar fazer algum acesso remoto o Spring prove isso de maneira transparente e elegante. Figura 1.3 Cenário remoto. É normal uma aplicação necessitar fazer acesso remoto a alguma outra aplicação ou serviço, nesse cenário é interessante usar spring também, pois além de facilitar a abstrair muito a complexidade de fazer esses acessos, você pode usar os seus componentes que já estão sendo gerenciados pelo spring obtendo assim uma máxima integração entre seus componentes de negócios e os componentes remotos. Diego Pacheco 1-8

15 Podemos usar Spring também se for necessário fazer integração com EJB, é possível utilizar os recursos da camada de acesso e abstração de EJB. Figura 1.4 Cenário EJB. O Spring permite você reutilizar seus pojos existentes e empacotados em Stateless Session Beans, para serem usados em aplicações web escaláveis, que precisam de segurança declarativa. Diego Pacheco 1-9

16 Portifólio O Spring possui um portifólio muito abrangente, que é composto por uma série de projetos Spring..., podemos dizer que é um ecossistema muito diversificado, composto pelos seguintes projetos: Spring Framework: Principal projeto do portifólio da Interface21, esse é o framework base de todos os outros. Contém recursos como container IoC, suporte a Hibernate, jdbc, aop, integração com os principais frameworks do mercado. Spring Web Flow: framework web baseado em fluxos, prove a facilidade de desenvolver modelos de ações dos usuários em alto nível de abstração. É possível agrupar dois fluxos de controle e formar um modulo da junção dos dois. Spring Web Services: Facilita o desenvolvimento de services SOAP, permitindo a criação de web services flexíveis, com suporte a segurança WS, permitindo ecriptação, decriptação. Possui integração com segurança ACGI. Além disso, o Spring Web Services faz as boas práticas serem fáceis, ajudando você desenvolver com baixo acoplamento entre o contrato e a implementação. Spring Acegi: Acegi é uma solução flexível e poderosa para segurança de aplicações Java. Dentre as principais facilidades estão: autenticação, autorização, acesso baseado em instância, canal de segurança e capacidades de detecção humana. Utiliza o contexto do Spring para suas configurações, configuração de forma não intrusiva, utilizando filters. Spring LDAP: Ajuda nas operações LDAP, baseada no pattern Spring s JdbcTemplate. O Framework alivia o desenvolvedor de abrir e fechar contextos, fazer loopings através de NamingEnumerations, encoding/deconding de valores e filtros. Diego Pacheco 1-10

17 Spring Rich Client: Framework para desenvolvimento de aplicações Rich Client, é uma boa solução para construções de aplicações swing de maneira rápida e de qualidade. Possuí um conjunto rico de UI Factories, o foco desse projeto e prover boas práticas de maneira viável para o desenvolvimento swing, possui integração com Jgoodies e layout managers ricos como o TableLayout. Spring IDE para eclipse: Plugin para o ide eclipse com facilidades para o uso de Spring. Preove auto complete para os xmls de configuração do Spring, módulo visual para o Spring Web Flow, negação entre os beans do Spring, e visualização de recursos AOP. Spring BeanDoc: É uma ferramenta que facilita a documentação e desenho gráfico dos beans do contexto do Spring. Desenhado para ser flexível e simples de usar. BeanDoc pode facilitar a visualização das camadas da aplicação e como os objetos interagem. Pode ser configurado por uma task ant. Spring OSGI: Facilita a criação de aplicações Spring que irão rodar em um framework OSGI, uma aplicação escrita dessa forma tem uma separação melhor entre os módulos, com isso ganha a habilitada de remover, adicionar, atualizar os módulos em tempo de execução. Spring JavaConfig: Projeto que prove algumas anotações para efetuar o mapeamento de pojos com menos configurações em XML. Esse projeto não substitui completamente o uso de XML, mas consegue reduzir bastante em algumas funcionalidades de injeção. Spring.NET: Implementação do Core do Spring, com o seu container de IoC, só que para a plataforma da Microsoft.NET, esse projeto não tem todas as funcionalidades do Spring para Java, mas conta com muitos recursos do Spring feitos em Java como AOP, gerenciamento transacional e integração com Web. Spring Extensions: Projeto que é uma coleção de ferramentas para estender as funcionalidades do Spring framework, prove facilidade de integrar o Spring com outros frameworks. Dentre os tantos frameworks que são integrados com esse projeto estão: ant, Lucene, cache declarativo com EHCache, Drools, Jakarta Commons, engines de tamplates como Velocity, jbpm, etc. Spring Batch: Prove suporte para execução de tarefas muito longas. Suporte a programas batch os quais processam um volume muito grande de informações de um banco de dados. Com suporte a agendamento automático ou manual após falhas, esse projeto promove suporte de execuções batch para ambientes corporativos. Diego Pacheco 1-11

18 Download O Spring Framework pode ser obtido através do site: existe a possibilidade de baixar somente o framework ou baixar o framework e suas dependências. A Versão do Spring que será usada nessa apostila é a 2.0.6, mas muitos itens descritos aqui são válido também para a versão 1.2.x do framework. O Spring framework necessita apenas uma versão do 1.5 JDK ou superior, não é necessário criar variáveis de ambiente para o Spring. O Spring usa um conjunto de frameworks muito grande, então é recomendado fazer download da versão full com dependência que tem por volta de 60Mb. Diego Pacheco 1-12

19 Estrutura de Diretórios Agora será detalhada a estrutura de diretórios da distribuição do Spring framework. Ao descompactar os binários do Spring teremos uma estrutura de diretórios da seguinte forma: Figura 1.4 Estrutura de Diretórios da distribuição do Spring. aspectj: Fontes dos testes dos artefatos que utilizam aspectj, aqui temos alguns artefatos de transação feitos em aspectj. dist: Distribuição binárias dos fontes do Spring, aqui você encontrará os jars do Spring, bem como todos os jars de todos os módulos separados. docs: Contem toda a documentação do Spring, nessa você irá encontrar o JavaDoc, Reference Guide, documentação das taglibs do Spring. lib: Nesse diretório estão todas as dependências diretas e indiretas do Spring framework, aqui você encontrar jars de diversos frameworks, como por exemplo hibernate, struts, junit, ant. Diego Pacheco 1-13

20 mock: Fontes do mecanismo de mock que são utilizados para testes unitários, nesse diretório você encontra os fontes dos testes dos mocks também. samples: Nesse diretório existem diversos exemplos de mini-aplicações utilizando o Spring Framework, como por exemplo a Petclinic que é uma clinica de animais. src: Contém todos os fontes do Spring framework, caso você precise desses fontes para debugar o comportamento de algum código do Spring. test: Nesse diretório você encontrará todos os fontes dos testes realizados com o Spring, é útil para aprender como utilizar algumas classes do Spring. tiger: Todos os fontes que utilizam recursos somente do Java 5.0 estão nesse diretório, como por exemplo, annotations. Dois arquivos que estão soltos no diretório principal e são interessantes são o changelog.txt e o readme.txt. No arquivo changelog contém todas as mudanças dessa versão do Spring como, por exemplo: quais são as novas features e quais foram os bugs corrigidos. No arquivo readme nós temos a definição de cada modulo do Spring com suas dependências, isso é muito útil se você deseja utilizar somente alguns módulos do Spring e precisa saber as dependências. Diego Pacheco 1-14

21 Exercícios 1) Defina com suas palavras qual a utilidade do Spring Framework. 2) Cite três vantagens de se usar Spring framework. 3) Diga um cenário em que poderíamos utilizar Spring. 4) Diga uma das utilidades do arquivo readme.txt. Diego Pacheco 1-15

22 Espaço para anotações Diego Pacheco 1-16

23 Spring Framework Framework para Desenvolvimento de Aplicações Java 2. Container IoC Diego Pacheco

24 Objetivos Conhecer o conceito de IoC; Saber utilizar Lazy initialization e Singletons; Conhecer os escopos dos Beans; Saber registrar beans no container do Spring; Saber fazer injeções com setters e construtores; Saber fazer injeções com coleções; Saber fazer injeção entre beans colaboradores; Saber instanciar o contexto do Spring. Diego Pacheco 2-2

25 IoC Inversion of control Com a grande demanda de desenvolvimento para o Java corporativo (JEE), surgiu um problema comum, como ligar a camada de acesso a dados com a camada de regra de negócio e por ventura a camada de apresentação? Uma solução é um container de Ioc que também é chamada de Dependency Injection(DI), o Spring framework possui um container de Ioc leve e implementa o pattern de setter injection. Esse container trabalha com serviços definidos pelo programador. Serviço é um componente de software que foi projetado para ser reutilizado em muitos lugares sem a necessidade de alteração de código, é possível alterar o seu comportamento estendendo-o de alguma forma. A Idéia principal da injeção de dependências é separar os Objetos e principalmente o objeto que usa um outro objeto não instanciar diretamente esse objeto. Sendo assim, a principal vantagem da Dependency Injection é separar uma interface de sua implementação concreta. São dois tipos de injeção que o Spring utiliza em seu container de Ioc, veja: Setter Injection: Nesse tipo de injeção de dependências se utiliza de métodos setters baseados em propriedades e padrões de getters/setters da Sun. Você não precisa ter a propriedade de fato em seu serviço, mas o padrão de nomenclatura deve estar correto. Constructor Injection: Nesse tipo de injeção de dependências é utilizado o construtor da própria classe para fazer as injeções necessárias. Esse construtor pode ter quantos parâmetros forem necessários. Principais vantagens do uso de IoC do Spring: Desacoplamento Visão fácil de dependência Facilidade para testes Possibilita escrever aplicações para terceiros (fora do seu controle) Para fixar melhor esse conceito considere o seguinte exemplo pratico: Imagine que um Autor escreveu muitos livros, então considere os seguintes pojos: Diego Pacheco 2-3

26 package com.targettrust.spring.bad; import java.util.list; public class Autor { private String nome; private List<Livro livros; public Autor() { public Autor(String nome) { super(); this.nome = nome; public void listarpornome(){ Listar l = new Listar(); List ret = l.list(nome); System.out.println( (ret.size()==0)? "NRE" : ret ); public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public List<Livro getlivros() { return livros; public void setlivros(list<livro livros) { this.livros = livros; Código 2.1 Autor.java Diego Pacheco 2-4

27 package com.targettrust.spring.bad; public class Livro { private Autor autor; private String titulo; private String editora; private int ano; public Livro() { public Livro(Autor autor, String titulo, String editora, int ano) { super(); this.autor = autor; this.titulo = titulo; this.editora = editora; this.ano = ano; public Autor getautor() { return autor; public void setautor(autor autor) { this.autor = autor; public String gettitulo() { return titulo; public void settitulo(string titulo) { this.titulo = titulo; public String geteditora() { return editora; public void seteditora(string editora) { this.editora = editora; public int getano() { return ano; public void setano(int ano) { this.ano = public String tostring() { return "titulo: " + titulo + " editor: " + editora + " ano: " + ano; Código 2.2 Livro.java Diego Pacheco 2-5

28 package com.targettrust.spring.bad; import java.util.arraylist; import java.util.list; public class Listar { public List list(string nome){ Autor a = new Autor("Diego Pacheco"); List<Livro livros = new ArrayList<Livro(); livros.add(new Livro(a,"Livro da Vida","Do Livro",2000)); livros.add(new Livro(a,"Spring for Dummies","O'really",2001)); livros.add(new Livro(a,"Bit ou não","variados Editora",2002)); List<Livro achados = new ArrayList<Livro(); for(livro l: livros){ if (l.getautor().getnome().equals(nome)) achados.add(l); return achados; Código 2.3 Listar.java package com.targettrust.spring.bad; public class MainTest { public static void main(string[] args) { Autor autor = new Autor("Rod"); autor.listarpornome(); autor.setnome("diego Pacheco"); autor.listarpornome(); Código 2.4 MainTest.java Diego Pacheco 2-6

29 Nós temos os seguintes objetos: Autor, Livro, Listar e MainTest. Nesse exemplo um Autor pode ter vários livros por isso dentro do Pojo de Autor temos List<Livro e a classe Listar se encarrega de armazenar os livros e autores e prover uma procura sobre esses dados. Como vocês devem ter percebido o pojo Autor contém um método chamado: listarpornome que instância esse objeto Listar e procura pelos livros do autor. Esse exemplo por mais simplório, serve para demonstrar que existe um forte acoplamento entre o pojo Autor e a classe que lista os Livros por Autor, outro grande problema nesse exemplo é que não existem interfaces. O que aconteceria se um Autor pudesse ter outras coisas além de livros como, por exemplo: artigos, co-autorias, vídeos? Nesse caso essa mudança iria implicar em um refactoring muito grande nessas classes, mas como poderíamos resolver esse problema? Diego Pacheco 2-7

30 Solução: Criar um interface Publicável e o Livro irá implementar essa classe, no pojo de Autor mude de uma lista de Livros para uma List de Publicáveis, assim criamos a possibilidade de um Autor ter diversos itens em seu portifólio como, por exemplo: Livros, Artigos, Co-autuações. Para resolver o problema de forma de armazenamento e procura de livros, foi criada a interface Listavel e a classe Listar implementa essa interface, agora podemos criar outra classe que faça acesso à base de dados, claro que esse classe deve implementar Listavel. No pojo do Autor precisamos colocar um atributo Listavel e através desse atributo que vamos acessar os dados. Essas novas classes iram ficar conforme os fontes a baixo. package com.targettrust.spring.bad.ok; import java.util.list; public class Autor { private String nome; private List<Publicavel publicaveis; private Listavel list; public Autor() { public Autor(String nome) { super(); this.nome = nome; public void listarpornome(){ List ret = list.list(nome); System.out.println( (ret.size()==0)? "NRE" : ret ); public String getnome() { return nome; public void setnome(string nome) { this.nome = nome; public List<Publicavel getpublicaveis() { return publicaveis; public void setpublicaveis(list<publicavel publicaveis) { this.publicaveis = publicaveis; public Listavel getlist() { return list; public void setlist(listavel list) { this.list = list; Código 2.5 Autor.java Diego Pacheco 2-8

31 package com.targettrust.spring.bad.ok; public class Livro implements Publicavel{ private Autor autor; private String titulo; private String editora; private int ano; public Livro() { public Livro(Autor autor, String titulo, String editora, int ano) { super(); this.autor = autor; this.titulo = titulo; this.editora = editora; this.ano = public String getnome() { return public String gettipo() { return "Livro"; public String getautor() { return autor.getnome(); public void setautor(autor autor) { this.autor = autor; public String gettitulo() { return titulo; public void settitulo(string titulo) { this.titulo = titulo; public String geteditora() { return editora; public void seteditora(string editora) { this.editora = editora; public int getano() { return ano; public void setano(int ano) { this.ano = Diego Pacheco 2-9

32 public String tostring() { return "titulo: " + titulo + " editor: " + editora + " ano: " + ano; Código 2.6 Livro.java package com.targettrust.spring.bad.ok; public interface Publicavel { public String getautor(); public String getnome(); public String gettipo(); Código 2.7 Publicavel.java package com.targettrust.spring.bad.ok; import java.util.list; public interface Listavel { public List<Publicavel list(string nome); Código 2.8 Listavel.java Diego Pacheco 2-10

33 package com.targettrust.spring.bad.ok; import java.util.arraylist; import java.util.list; public class Listar implements Listavel{ public List<Publicavel list(string nome) { Autor a = new Autor("Diego Pacheco"); List<Publicavel publicaveis = new ArrayList<Publicavel(); publicaveis.add(new Livro(a,"Livro da Vida","Do Livro",2000)); publicaveis.add(new Livro(a,"Spring for Dummies","O'really",2001)); publicaveis.add(new Livro(a,"Bit ou não","variados Editora",2002)); List<Publicavel achados = new ArrayList<Publicavel(); for(publicavel p: publicaveis){ if (p.getautor().equals(nome)) achados.add(p); return achados; Código 2.9 Listar.java package com.targettrust.spring.bad.ok; public class MainTest { public static void main(string[] args) { Autor autor = new Autor(); autor.setlist(new Listar()); autor.setnome("rod"); autor.listarpornome(); autor.setnome("diego Pacheco"); autor.listarpornome(); Código 2.10 MainTest.java Diego Pacheco 2-11

34 Nesse exemplo conseguimos resolver os problemas citados acima, mas utilizamos a IoC na mão, ou seja, nós mesmos injetamos as dependências, a solução é boa, mas isso em um sistema grande seria muito custoso de se fazer, nesse ponto entra o container de IoC do Spring. O Container possibilita de maneira fácil e simples a injeção dessas dependências e reduz o custo de se trabalhar com essas interfaces quase à zero. Diego Pacheco 2-12

35 Registrando Beans Agora vamos ver como registrar essas classes no contexto do Spring. Esse registro é muito simples, ele consiste em apontar para uma classe Java no seu classpath e dar um id a esse bean. Existem outras configurações que podemos fazer sobre esses beans, mas vamos começar mostrando como declarar um bean no Spring. <?xml version="1.0" encoding="utf-8"? <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://www.springframework.org/schema/beans <bean id="autor" class="com.targettrust.spring.bad.ok.autor" / </beans Código XML 2.1 Spring-beans.xml Para recuperarmos esse bean do Contexto do Spring, precisamos instanciar um contexto do Spring e solicitar o bean apartir do ID para o contexto, conforme exemplo a baixo. package com.targettrust.spring.primeiro; import org.springframework.beans.factory.beanfactory; import org.springframework.context.support.classpathxmlapplicationcontext; public class Test { public static void main(string[] args) { BeanFactory bf = new ClassPathXmlApplicationContext("/com/targettrust/spring/primeiro/Springbeans.xml"); Object bean = bf.getbean("autor"); System.out.println("Autor: " + bean); Código 2.11 Obtendo um bean do Spring Diego Pacheco 2-13

36 A BeanFactory é uma interface Java que representa o Container Ioc, essa BeanFactory precisa ser instanciada, nesse exemplo foi usado a factory ClassPathXmlApplicationContext que é uma factory que leva em consideração xmls de configurações que estão no classpath. Existem várias factories no Spring, uma para cada situação, por exemplo, existe uma factory que é utilizada para subir o contexto do Spring em um ambiente Servlet. Após a inicialização do contexto do Spring podemos utilizar o método getbean para recuperar um bean do Spring, nesse exemplo estamos passando o ID do bean que foi o mesmo que registramos no XML: Spring-beans.xml Outra forma de criarmos a BeanFactory seria utilizar um ClassPathResource que aponta para o Xml dos beans e depois utilizar a factory XmlBeanFactory. Conforme o exemplo de código a baixo. ClassPathResource resource = new ClassPathResource("/com/targettrust/spring/primeiro/Spring-beans.xml"); BeanFactory bf = new XmlBeanFactory(resource); Código 2.12 outra bean factory É possível registrar um Bean no contexto do Spring programaticamente, para isso é necessário utilizar um objeto BeanDefinition que é o objeto que configura o bean no Spring. BeanDefinition beandefinition = new RootBeanDefinition(Livro.class, RootBeanDefinition.AUTOWIRE_NO); ((BeanDefinitionRegistry)bf).registerBeanDefinition("livro", beandefinition); Object beanoutro = bf.getbean("livro"); System.out.println("Livro: " + beanoutro); Código 2.13 Registra um bean programaticamente Diego Pacheco 2-14

Spring: Um suite de novas opções para Java EE

Spring: Um suite de novas opções para Java EE Spring: Um suite de novas opções para Java EE Alberto J Lemos (Dr. Spock) Instrutor Globalcode Ricardo Jun Taniguchi Instrutor Globalcode 1 Agenda > Sobre o Spring Framework > Escopo de integração com

Leia mais

Guia para Iniciantes do WebWork

Guia para Iniciantes do WebWork Guia para Iniciantes do WebWork Marcelo Martins Este guia descreve os primeiros passos na utilização do WebWork Introdução Desenvolver sistemas para Web requer mais do que simplesmente um amontoado de

Leia mais

5 Derivando Aplicações Baseadas em Spring e OSGi

5 Derivando Aplicações Baseadas em Spring e OSGi 69 5 Derivando Aplicações Baseadas em Spring e OSGi O capítulo 3 apresentou como um conjunto de artefatos (classes, interfaces, aspectos e arquivos extras) de uma arquitetura de LPS pode ser modelado na

Leia mais

MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis

MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis Microkernel Service Locator Dependency Injection Exemplo Classe Auditor Salva registros de eventos no banco de dados

Leia mais

Spring Framework Luiz Daniel Creão Augusto laugusto@ime.usp.br Sistemas de Middleware Avançados IME-USP - 2006/02

Spring Framework Luiz Daniel Creão Augusto laugusto@ime.usp.br Sistemas de Middleware Avançados IME-USP - 2006/02 Spring Framework Luiz Daniel Creão Augusto laugusto@ime.usp.br Sistemas de Middleware Avançados IME-USP - 2006/02 Agenda Introdução Inversão de Controle Spring AOP Portable Service Abstractions Spring

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

Desenvolvimento Web com Framework Demoiselle versão 1.0

Desenvolvimento Web com Framework Demoiselle versão 1.0 Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

Como sobreviver com Java 2? Saulo Arruda

Como sobreviver com Java 2? Saulo Arruda Como sobreviver com Java 2? Saulo Arruda Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões Apresentação Saulo Arruda (http://sauloarruda.eti.br) Trabalha com

Leia mais

Spring Framework. Versão 1.0. Apostila destinada ao curso com carga horária de 20 (vinte) horas

Spring Framework. Versão 1.0. Apostila destinada ao curso com carga horária de 20 (vinte) horas Spring Framework O Spring Framework é uma solução leve que permite a construção de aplicativos empresarias. Spring é modular, isso permite o uso de apenas as partes necessárias, sem ter de implementar

Leia mais

Introdução. Tutorial do Xdoclet. Resumo

Introdução. Tutorial do Xdoclet. Resumo Tutorial do Xdoclet Resumo Apresentar a ferramenta XDoclet uma ferramenta utilizada como tarefa (task) do Jakarta Ant que permite executar e criar templates para gerar arquivos, inclusive código Java,

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5.

Autor: Ricardo Francisco Minzé Júnior - ricardominze@yahoo.com.br Desenvolvendo aplicações em camadas com PHP 5. Desenvolvendo aplicações em camadas com PHP 5. Talvez a primeira vista você ache estranha a palavra Camada em programação, mas o que vem a ser Camada? Segundo o dicionário: Camada 1 - Qualquer matéria

Leia mais

Java e Banco de Dados: JDBC, Hibernate e JPA

Java e Banco de Dados: JDBC, Hibernate e JPA Java e Banco de Dados: JDBC, Hibernate e JPA 1 Objetivos Apresentar de forma progressiva as diversas alternativas de persistência de dados que foram evoluindo na tecnologia Java, desde o JDBC, passando

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br)

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br) Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) (kalinowski@ic.uff.br) Agenda Arquiteturas Web em Java (Relembrando) Arquitetura Java EE Introdução a Enterprise Java Beans

Leia mais

Evolução do Design através de Testes e o TDD

Evolução do Design através de Testes e o TDD c a p a Lucas Souza (lucas.souza@caelum.com.br): é bacharel em Engenharia da Computação pela Universidade de Ribeirão Preto, possui a certificação SCJP e trabalha com Java há 4 anos. Atualmente é desenvolvedor

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 9 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM JUNHO / 2014 2 de 9 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o a r t i g o Pedro Henrique S. Mariano (pedro.mariano@caelum.com.br) técnologo em Análise e Desenvolvimento de Sofware pela FIAP, possui as certificações SCJP 6 e SCRUM master.trabalha como consultor e

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

Mapeamento Lógico/Relacional com JPA

Mapeamento Lógico/Relacional com JPA Mapeamento Lógico/Relacional com JPA Elaine Quintino da Silva Doutora em Ciência da Computação pelo ICMC-USP/São Carlos Analista de Sistemas UOL PagSeguro Instrutora Globalcode Agenda! Persistência de

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único Pacotes e Encapsulamento Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes

Leia mais

TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges

TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges Versão 1.0 TUTORIAL SPRING SECURITY PROGRAMAÇÃO COM FRAMEWORKS Responsáveis: Ana Luíza Cruvinel, Maikon Franczak e Wendel Borges Data: 01/12/2014 SUMÁRIO 1. INTRODUÇÃO... 2 2. O QUE É SPRING SECURITY?...

Leia mais

Classes de Entidades Persistentes JDB

Classes de Entidades Persistentes JDB Classes de Entidades Persistentes JDB Brasil, Natal-RN, 07 de setembro de 2011 Welbson Siqueira Costa www.jdbframework.com Nota de Retificação: em 11/12/2011 a Listagem 3 desse tutorial sofreu uma pequena

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

ruirossi@ruirossi.pro.br

ruirossi@ruirossi.pro.br Persistência Com JPA & Hibernate Rui Rossi dos Santos ruirossi@ruirossi.pro.br Mediador: Rui Rossi dos Santos Slide 1 Mapeamento Objeto-Relacional Contexto: Linguagem de programação orientada a objetos

Leia mais

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio

Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio Roberto Perillo (jrcperillo@yahoo.com.br) é bacharel em Ciência da Computação e está atualmente cursando mestrado no ITA, onde já concluiu o curso de especialização em Engenharia de Software. Trabalha

Leia mais

NOVIDADES DO JAVA PARA PROGRAMADORES C

NOVIDADES DO JAVA PARA PROGRAMADORES C PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples

Leia mais

CS-14. Algoritmos e Estrutura de Dados em Java

CS-14. Algoritmos e Estrutura de Dados em Java CS-14 Algoritmos e Estrutura de Dados em Java A Caelum atua no mercado com consultoria, desenvolvimento e ensino em computação. Sua equipe participou do desenvolvimento de projetos em vários clientes e,

Leia mais

ANEXO I BICICLETA ESCOLAR. Modelo de ofício para adesão à ata de registro de preços (GRUPO 1)

ANEXO I BICICLETA ESCOLAR. Modelo de ofício para adesão à ata de registro de preços (GRUPO 1) ANEXO I BICICLETA ESCOLAR Modelo de ofício para adesão à ata de registro de preços (GRUPO 1) Assunto: Adesão à ata de registro de preços nº 70/2010 do pregão eletrônico nº 40/2010. 1 2 BICICLETA 20 - AC,

Leia mais

Laboratório EJB e J2EE Uma aplicação completa

Laboratório EJB e J2EE Uma aplicação completa J530 - Enterprise JavaBeans Laboratório EJB e J2EE Uma aplicação completa Helder da Rocha (helder@acm.org) argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

Leia mais

Persistência de Dados em Java com JPA e Toplink

Persistência de Dados em Java com JPA e Toplink Persistência de Dados em Java com JPA e Toplink Vinicius Teixeira Dallacqua Curso de Tecnologia em Sistemas para Internet Instituto Federal de Educação, Ciência e Tecnologia - IFTO AE 310 Sul, Avenida

Leia mais

Capítulo 5 Reuso de Classes

Capítulo 5 Reuso de Classes Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. Desenvolvimento Orientado a Objetos com Java Capítulo 5 Reuso de Classes

Leia mais

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. EDSON GONÇALVES Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério. AGRADECIMENTOS Primeiramente gostaria de agradecer

Leia mais

Unidade 9: Middleware JDBC para Criação de Beans

Unidade 9: Middleware JDBC para Criação de Beans Programação Servidor para Sistemas Web 1 Unidade 9: Middleware JDBC para Criação de Beans Implementando MVC Nível 1 Prof. Daniel Caetano Objetivo: Preparar o aluno para construir classes de entidade com

Leia mais

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação

Leia mais

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br A arquitetura Enterprise JavaBeans é uma arquitetura de componentes para o desenvolvimento e a implantação de aplicativos de negócio distribuídos

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos.

Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos. Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos. 4.2. Gerencie suas dependências através de injeção Mesmo com o baixo acoplamento haverá

Leia mais

Java na WEB Componentes Bean

Java na WEB Componentes Bean 1 Java na WEB Componentes Bean Objetivo: Ao final da aula o aluno será capaz de: Criar site dinâmico utilizando componentes Bean Utilizar Tags de ação Empregar Coleções de Bean. Sumário 5. Definição de

Leia mais

Grupo de Usuários Java http://www.guj.com.br JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB

Grupo de Usuários Java http://www.guj.com.br JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB JavaServer Faces: A mais nova tecnologia Java para desenvolvimento WEB Talita Pitanga Conheça um pouco sobre a mais nova tecnologia para desenvolvimento de aplicações WEB: JavaServer Faces. Introdução

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES

DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES DESENVOLVIMENTO COM JAVA EE E SUAS ESPECIFICAÇÕES Hugo Henrique Rodrigues Correa¹, Jaime Willian Dias 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil hugohrcorrea@gmail.com, jaime@unipar.br Resumo.

Leia mais

Artigo JavaMagazine (edição 58)

Artigo JavaMagazine (edição 58) 1 / JBoss Seam Simplicidade e produtividade no desenvolvimento de aplicações Web Aprenda a desenvolver aplicações Web utilizando a integração perfeita entre JSF e EJB 3 FÁBIO AUGUSTO FALAVINHA O JBoss

Leia mais

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Framework. Marcos Paulo de Souza Brito João Paulo Raittes Framework Marcos Paulo de Souza Brito João Paulo Raittes Sobre o seu surgimento A primeira versão do spring foi escrita por Rod Johnson em 2002, quando ele estava Lancando o seu livro Expert One-on-One

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCC-0263. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCC-0263 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

Enterprise Java Beans (III)

Enterprise Java Beans (III) Enterprise Java Beans (III) Professor: Diego Passos UFF dpassos@ic.uff.br Baseado no material original cedido pelo Professor Carlos Bazilio Última Aula Disponibilização do EJB no container. Arquivo descritor.

Leia mais

Curso de Introdução ao

Curso de Introdução ao Curso de Introdução ao Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br O que é? Struts Struts é um framework gratuito para construção de aplicações web implementadas em Java.

Leia mais

DWR DIRECTED WEB REMOTING

DWR DIRECTED WEB REMOTING DWR DIRECTED WEB REMOTING Vamos ver nesse artigo um pouco sobre o Frameworks Ajax para Java, o DWR. Vamos ver seus conceitos, utilidades, vantagens, algumas práticas e fazer o passo a passo para baixar,

Leia mais

Desenvolvimento de aplicações Web. Java Server Pages

Desenvolvimento de aplicações Web. Java Server Pages Desenvolvimento de aplicações Web Java Server Pages Hamilton Lima - athanazio@pobox.com 2003 Como funciona? Servidor web 2 Internet 1 Browser 3 Arquivo jsp 4 JSP Compilado 2 Passo a passo 1 browser envia

Leia mais

Parte I. Demoiselle Vaadin

Parte I. Demoiselle Vaadin Parte I. Demoiselle Vaadin O Vaadin é um framework para construção de interfaces web que aplica ideias inovadoras. Apesar de usar o GWT como mecanismo para a exibição de seus componentes, eles tem características

Leia mais

Java 2 Enterprise Edition Uma aplicação J2EE completa

Java 2 Enterprise Edition Uma aplicação J2EE completa Java 2 Enterprise Edition Uma aplicação J2EE completa Helder da Rocha www.argonavis.com.br 1 Objetivos O objetivo deste módulo é construir e implantar uma aplicação J2EE completa Inicialmente, será mostrada

Leia mais

O que é um framework?

O que é um framework? O que é um framework? Um framework, ou arcabouço, em desenvolvimento de software, é uma abstração que une códigos comuns entre vários projetos de software provendo uma funcionalidade genérica. (Wikipedia)

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

UNIDADE IV ENTERPRISE JAVABEANS

UNIDADE IV ENTERPRISE JAVABEANS UNIDADE IV ENTERPRISE JAVABEANS MODELO J2EE COMPONENTES DE Camada de Negócios NEGÓCIOS JAVA SERVLET, JSP E EJB Nos capítulos anteriores, foi mostrado como desenvolver e distribuir aplicações servlet e

Leia mais

Drive MySql de conexão para Eclipse

Drive MySql de conexão para Eclipse Drive MySql de conexão para Eclipse de Setembro de 0 Olá, neste artigo iremos focar em como utilizar o drive de conexão do Mysql na IDE eclipse. Veremos passo-a-passo como instalar, o que é uma coisa muito

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

Leia mais

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Especialização em desenvolvimento para web com interfaces ricas Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares Objetivos Conceito de exceções Tratar exceções pelo uso de try, catch e

Leia mais

Criando documentação com javadoc

Criando documentação com javadoc H Criando documentação com javadoc H.1 Introdução Neste apêndice, fornecemos uma introdução a javadoc ferramenta utilizada para criar arquivos HTML que documentam o código Java. Essa ferramenta é usada

Leia mais

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

J2EE. J2EE - Surgimento

J2EE. J2EE - Surgimento J2EE Java 2 Enterprise Edition Objetivo: Definir uma plataforma padrão para aplicações distribuídas Simplificar o desenvolvimento de um modelo de aplicações baseadas em componentes J2EE - Surgimento Início:

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2009

CURSO DESENVOLVEDOR JAVA Edição 2009 CURSO DESENVOLVEDOR JAVA Edição 2009 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

(UFF) JDBC (I) TEPIS II

(UFF) JDBC (I) TEPIS II Aula 20: JDBC (I) Diego Passos Universidade Federal Fluminense Técnicas de Projeto e Implementação de Sistemas II Diego Passos (UFF) JDBC (I) TEPIS II 1 / 33 JDBC: Introdução Especificação que provê acesso

Leia mais

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO

INTRODUÇÃO 12. DOCUMENTAÇÃO INTRODUÇÃO INTRODUÇÃO INTRODUÇÃO 12. DOCUMENTAÇÃO Na plataforma Java SE 7, há cerca de 4000 classes e interfaces disponíveis para utilizarmos em nossas aplicações Podemos visualizar a documentação dessas classes e interfaces

Leia mais

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. Rodrigo Hjort. Robson Ximenes

Demoiselle Report Guide. Demoiselle Report. Marlon Carvalho. <marlon.carvalho@gmail.com> Rodrigo Hjort. <rodrigo.hjort@gmail.com> Robson Ximenes Demoiselle Report Guide Demoiselle Report Marlon Carvalho Rodrigo Hjort Robson Ximenes Demoiselle Report... v 1. Configuração

Leia mais

J550 Testes em Aplicações Web com Cactus

J550 Testes em Aplicações Web com Cactus J550 Testes em Aplicações Web com Cactus Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este módulo descreve um framework - o Jakarta Cactus - que pode ser utilizado para testar

Leia mais

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências Introdução (antes) Programador Produto Introdução

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

Leia mais

Virmerson B. Santos. virmerson@hightechcursos.com.br. Material de Apoio. CURSO de JAVA WEB FLEX. (cjwebflex)

Virmerson B. Santos. virmerson@hightechcursos.com.br. Material de Apoio. CURSO de JAVA WEB FLEX. (cjwebflex) Virmerson B. Santos virmerson@hightechcursos.com.br Material de Apoio CURSO de JAVA WEB FLEX (cjwebflex) Ferramentas Flex Builder (Download trial) Windows Processador de 2 GHz ou mais rápido Microsoft

Leia mais

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software

UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO. Contribuições do MDA para o desenvolvimento de software UNIVERSIDADE FEDERAL DE SANTA CATARINA CURSO DE GRADUAÇÃO EM SISTEMAS DE INFORMAÇÃO Contribuições do MDA para o desenvolvimento de software Anna Carla Mohr Verner Helder Eugenio dos Santos Puia Florianópolis,

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

Desmistificando o Hibernate Envers em 10 passos

Desmistificando o Hibernate Envers em 10 passos _envers Desmistificando o Hibernate Envers em 10 passos Auditoria de dados? Registro de Log? Trilha de auditoria? Descubra como é fácil, através do Hibernate Envers, rastrear o histórico de mudanças e

Leia mais

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre

Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Sistemas Distribuídos e Tolerância a Falhas Mestrado em Engenharia Informática 1ª ano / 2ª semestre Prática: 1 - A plataforma JEE (Java Enterprise Edition) UBI, DI, Paula Prata SDTF T01 1 Arquitectura

Leia mais

TDC2012. EJB simples e descomplicado, na prática. Slide 1

TDC2012. EJB simples e descomplicado, na prática. Slide 1 TDC2012 EJB simples e descomplicado, na prática Slide 1 Palestrantes Kleber Xavier Arquiteto Senior / Globalcode kleber@globalcode.com.br Vinicius Senger Arquiteto Senior / Globalcode vinicius@globalcode.com.br

Leia mais

WebApps em Java com uso de Frameworks

WebApps em Java com uso de Frameworks WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

!" # # # $ %!" " & ' ( 2

! # # # $ %!  & ' ( 2 !"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta

Leia mais

Auditoria Avançada de Persistência com Hibernate, JPA e Envers

Auditoria Avançada de Persistência com Hibernate, JPA e Envers a r t i g o José Yoshiriro Ajisaka Ramos (jyoshiriro@gmail.com): bacharel em Sistema de Informação (IESAM). Mestrando em Ciência da Computação (UFPA). Instrutor na Equilibrium Web e na UAB. Engenheiro

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

4 - Padrões da Camada de Integração. Introdução

4 - Padrões da Camada de Integração. Introdução Padrões de Projeto J2EE J931 Padrões da Camada de Integração Helder da Rocha (helder@acm.org) argonavis.com.br Introdução A camada de integração encapsula a lógica relacionada com a integração do sistema

Leia mais

Mini-curso Gratuito Globalcode Slide 1

Mini-curso Gratuito Globalcode Slide 1 Mini-curso Gratuito Slide 1 Mini-curso Gratuito Introdução Enterprise Java Beans (EJB) 3.0 Slide 2 Agenda Plataforma Java EE Conceitos Iniciais (EJB) Session Bean Message-Driven Bean (MDB) Java Persistence

Leia mais

JSF - Controle de Acesso FERNANDO FREITAS COSTA

JSF - Controle de Acesso FERNANDO FREITAS COSTA JSF - Controle de Acesso FERNANDO FREITAS COSTA ESPECIALISTA EM GESTÃO E DOCÊNCIA UNIVERSITÁRIA JSF Controle de Acesso Antes de iniciarmos este assunto, é importante conhecermos a definição de autenticação

Leia mais

Criando aplicações ricas com Adobe Flex 3.4 e Java

Criando aplicações ricas com Adobe Flex 3.4 e Java a r t i g o Gilberto Santos (contato@gilbertosantos.com) é graduando do curso de Análise e Desenvolvimento de Software pela PUC- GO, trabalha com Java desde 2005, possui certificação SCJP5 e Adobe Certifield

Leia mais

Herança. Alberto Costa Neto DComp - UFS

Herança. Alberto Costa Neto DComp - UFS Herança Alberto Costa Neto DComp - UFS 1 Motivação Vimos como se faz encapsulamento e a importância de fazê-lo... Contudo, também é possível fazer encapsulamento em algumas linguagens não OO O que mais

Leia mais

Documentação Usando o Javadoc

Documentação Usando o Javadoc Documentação Usando o Javadoc Prof. MSc. João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão 2.1 Última Atualização: 04/2005 1 Comentários e Documentação Comentários em Java Existem três tipos de comentários

Leia mais

Java Coleções. Rodrigo C. de Azevedo

Java Coleções. Rodrigo C. de Azevedo Java Coleções Rodrigo C. de Azevedo OMG Certified UML Professional Fundamental OMG Certified UML Professional Intermediate CompTIA Project+ Sun Certified Associate for Java Platform Sun Certified Programmer

Leia mais