Dúvida de Spring[RESOLVIDO]

6 respostas
xxmayconxx

quando eu configuro o xml do Spring e atribuo alguns valores do bean nesse xml, eu instanciando a classe ClassPathXmlApplicationContext ja aparecem os atributos que eu coloquei no construtor de uma das classes que configurei no xml, é assim mesmo ou isso é algum erro?Se não é erro não entendi por que aconrece isso.

6 Respostas

xxmayconxx

ainda não descobri oque é

romarcio

Tentei entender sua dúvida mas não consegui.
Tenta exemplificar ou explicar de outro modo.

xxmayconxx
public class Pessoa
{
	private String nome;
	private int idade;
	
	public Pessoa(String a,int b)
	{
		nome = a;
		idade = b;
		getNome();
		getIdade();
		
		
	}
	
	public String getNome() {
		System.out.println(nome);
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public int getIdade() {
		System.out.println(idade);
		return idade;
	}
	public void setIdade(int idade) {
		this.idade = idade;
	}

no construtor aqui eu to usando o os métodos get nda classe que tem um print neles, se eu instanciasse a classe normalmente no método main e executasse, beleza, os prints iriam aparecer, mas eu não instanciei a classe pessoa nem com o spring e nem normalmente, e u só atribui os valores do nome e idade pelo spring e isntancie a classe do spring, a ClassPathXmlApplicationContext, e só de fazer isso os valores do ja são printados na tela, eu queria saber por que acontece isso.

romarcio

Agora entendi.

Quando você faz uso da injeção de dependências do Spring, ele é que vai instanciar as classes para você. E ele faz isso a partir de um construtor. Como você colocou “coisas” em seu construtor, elas serão executadas.
E a chamada a ClassPathXmlApplicationContext faz com que todos os beans do Spring sejam inicializados.

xxmayconxx

Agora sim, consegui descobrir aqui

eis a resposta

romarcio

[quote=xxmayconxx]Agora sim, consegui descobrir aqui

eis a resposta

É a solução para o seu caso.
Como não uso a opção lazy-init=“true”, nem lembrava dela.

Criado 10 de janeiro de 2012
Ultima resposta 10 de jan. de 2012
Respostas 6
Participantes 2