O que é um "bean"  XML
Índice dos Fóruns » Java Básico
Autor Mensagem
Vegetto
GUJ Ranger

Membro desde: 22/06/2003 15:39:49
Mensagens: 797
Localização: Campinas
Offline

Olá amigos, estou iniciando em java, e, todo mundo fala em bean, bean, bean!!!!

Pelo o que eu entendi ( por osmose ) bean é um componente com set's e get's somente.... ë isso mesmo, ou só falei besteira???

Abraços,
Tiago
ricardolecheta
GUJ Master
[Avatar]

Membro desde: 17/05/2003 13:42:10
Mensagens: 1486
Localização: Curitiba
Offline

vc está correto... uma bean é uma classe normal com várias
propriedades com os métodos get/set...

um exemplo de uso de uma bean é quando vc acessa o banco de dados e cria uma lista com várias beans...

digamos que vc possui uma tabela Pessoa, com os campos nome e fone...

aí na bean terá:

private String nome;
private String fone;
// gets e sets

depois que vc ler os registros da base vc pode criar uma lista de beans do tipo Pessoa entende ?

esta lista vc manda para uma página jsp por exemplo para mostrar os resultados da consulta...

é isso

Ricardo R. Lecheta
Livro - Google Android (português)
http://www.livroandroid.com.br/
http://livroandroid.blogspot.com/
http://www.livetouch.com.br/
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Mais duas coisas que tem que ter, pra ser considerado um bean:

- implementar java.io.Serializable
- ter um construtor default (sem parametros)

E nao, beans nao necessariamente precisam ser meras "structs" do C embelezadas, eles podem ter métodos com inteligência, sim
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Vegetto
GUJ Ranger

Membro desde: 22/06/2003 15:39:49
Mensagens: 797
Localização: Campinas
Offline

Valew pela resposta pessoal!

uma coisa que eu não saquei...

cv wrote:
- implementar java.io.Serializable
- ter um construtor default (sem parametros)

duas cosias na verdade...

Eu sei o que é Serialização, mas eu não entendi por que temos que implementar Serializable neles.

E por que do contrutor default?? Alguma conveção ou algo do tipo?
cv
Moderador
[Avatar]

Membro desde: 04/04/2003 00:32:12
Mensagens: 7842
Localização: São Paulo, SP
Offline

Serializable:

Por que os beans podem ter que trafegar pela rede em um momento qualquer (um Servlet falando com EJB, por exemplo).

Construtor Default:
E eles tem que implementar um construtor default para que um mero .newInstance() (da API de reflection) possa instanciá-los. Isso é essencial, por exemplo, nos JSPs, com a tag <jsp:useBean>.
[Email] [WWW] [Yahoo!] [MSN] [ICQ]
Vegetto
GUJ Ranger

Membro desde: 22/06/2003 15:39:49
Mensagens: 797
Localização: Campinas
Offline

Hummmmm entendi!!!

Muito obrigado pelas explicações
alex.lopes
JavaGuru

Membro desde: 17/12/2002 12:36:08
Mensagens: 215
Offline

perguntinha boba

o que é uma classe Serializable??

pra que serve?

como isso funciona na pratica?
Bani
JWizard
[Avatar]

Membro desde: 13/10/2002 23:17:37
Mensagens: 2443
Localização: São Paulo
Offline

Pelo o que eu sei, os beans não precisam necessariamente implementar exatamente a interface java.io.Serializable. Precisam apenas ter algum mecanismo de serialização (atualmente a preferível é por XML).

Serializable é uma interface de marcação. Se a classe não implementá-la, os objetos não serão serializáveis. Serve só pra demonstrar que o programador realmente aceita as consequencias de uma serialização.
(Serialização é transformar o objeto que está na memória da JVM em algo que pode ser persistido em um arquivo, trafegado na rede, etc)

~ Site da Bani ~
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

pela definição de JavaBean http://java.sun.com/products/javabeans/
um bean precisa ser serializavel (isto é, implementar java.io.Serializable)
pelo que diz em http://java.sun.com/products/javabeans/faq/faq.general.html#Q2
um JavaBean é um componente reutilizavel, e não somente uma classe com get e set para as propriedades,
a parte de Introspection do bean em uma ferramenta, precisa de um BeanInfo para funcionar corretamente, assim pode-se descrever as propriedades, metodos e eventos do Bean,
uma classe que apenas tem os metodos get e set para as propriedades, esta mais para um VO do que para um JavaBean,

um bom exemplo de JavaBean é o JButton, é serializavel, possui um BeanInfo para introspecção por ferramentas, encapsula alguma logica de ffuncionamento, ....

dizer que um JavaBean é apenas uma classe com get e set é no minimo menospresar a API JavaBean, que contem varias ferramentas.

para simplificar bastante um JavaBean é um componente reutilizavel que pode ser plugado em ferramentas de construção (como netbeans ou JBuilder) serializavel (para esta ferramenta poder salvar seu estado e recuperar depois, que possui um contrutor default (por exigencia da especificação), e encapsula alguma logica de funcionamento (caso contrario não teria necessidade de criar este componente, ou de chama-lo de componente) e pode ter uma ou mais classes, o que é conhecido como o Bean é apenas a interface publica para este componente, onde estão disponiveis suas propriedades, metodos e eventos.

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
Bani
JWizard
[Avatar]

Membro desde: 13/10/2002 23:17:37
Mensagens: 2443
Localização: São Paulo
Offline

urubatan wrote:pela definição de JavaBean http://java.sun.com/products/javabeans/
um bean precisa ser serializavel (isto é, implementar java.io.Serializable)


Não necessariamente...

JavaBean components must be able to retain their state information. Typically, this is done through the Serialization API. However, according to Section 2.1 of the JavaBean specification, a bean is not required to inherit from any particular base class or interface. While some may think that the saving of state information must be done with the Serialization API, Section 5.4 of the specification states that the persistence could be done through generation of source code to reinitialize the state of a bean component.

~ Site da Bani ~
urubatan
Moderador
[Avatar]

Membro desde: 21/09/2002 10:31:26
Mensagens: 2481
Localização: Porto Alegre/RS
Offline

ops, foi mau, me passei nesta

[]'s
Rodrigo Urubatan
http://www.urubatan.com.br
Melhor livro de RoR do brasil: http://livro.urubatan.com.br
[WWW]
guscoppi
JavaTeenager
[Avatar]

Membro desde: 10/06/2003 09:37:38
Mensagens: 167
Localização: Joinville/SC
Offline

eu levei um tempo para entender oque é um Bean e como usar (o cv que diga né?! hehehehe)
mas assim... uma coisa que eu não tinha aprendido era que tinha que ter um construtor em branco... ele tem que ser necessariamente em branco?
por exemplo:



Isso é errado? Se for... eu poderia fazer um metodo setPessoa(String nome, int idade) com a mesma funcionalidade do construtor?

"Nas horas difíceis da vida você deve levantar a cabeça, estufar o peito, e dizer de boca cheia: Agora f* !!!"
[Email] [WWW] [MSN]
Rafael Afonso
Virtual Machine Man
[Avatar]
Membro desde: 05/12/2002 16:03:43
Mensagens: 719
Localização: São Paulo/SP
Offline

A príncípio não há problema em ter um construtor com todos os parâmetroas, mas seu bean deve obrigatoriamente também ter um construtor sem parâmetros entre outras coisas pelos motivos citados pelo cv:

Construtor Default:
E eles tem que implementar um construtor default para que um mero .newInstance() (da API de reflection) possa instanciá-los. Isso é essencial, por exemplo, nos JSPs, com a tag <jsp:useBean>.

Outro motivo é que, no caso de beans gráficos (como componentes Swing) em IDEs (como JBuilder, NetBeans, Eclipse, etc), também é necessário que estes beans tenham um construtor sem argumentos.
E também há os EJBs

Rafael Ubiratam Clemente Afonso
---------------------------------------
GitHub
ScalaFX
LinkedIn
[MSN]
jack_-_ganzha
JavaEvangelist
[Avatar]

Membro desde: 31/03/2003 13:18:12
Mensagens: 315
Localização: Recife - Pernambuco
Offline

Bani wrote:
Pelo o que eu sei, os beans não precisam necessariamente implementar exatamente a interface java.io.Serializable. Precisam apenas ter algum mecanismo de serialização (atualmente a preferível é por XML).


Oi Bani, qual o mecanismo para serializar um bean para um xml? Tem que usar alguma api propria para o processamento de xml ou implementar/extender alguma classe? E por que a serializaçao para arquivos xml esta' sendo mais usada? Por causa de Web Services?

valeuz...

Marcos Silva Pereira

http://www.javafree.org
http://marcospereira.wordpress.com
[MSN] [ICQ]
Vegetto
GUJ Ranger

Membro desde: 22/06/2003 15:39:49
Mensagens: 797
Localização: Campinas
Offline

Rafael Afonso wrote:E também há os EJBs


Mal eu fugir do assunto do tópico, mas o que são/é "EJBs" ?


Obrigado,
Tiago
 
Índice dos Fóruns » Java Básico
Ir para:   
Powered by JForum 2.1.8 © JForum Team