Spring - Dúvida sobre Injeção [Resolvido]

Pessoal, boa tarte.

Estava testando as anotações do spring para injeção e declaração de beans.

Eu testei dois cenários e tive respostas diferentes com relação a injeção. Isso me preocupou.

Verifiquem que na minha classe de configuração de beans eu coloquei no método cliente()
a criação de uma classe Cliente passando em seu construtor um valor string quaquer.

Quando eu rodo o método main(), o resultado de:

Utilitario util = (Utilitario) context.getBean(“utilit”);
System.out.println(util.getCliente().getNome());

É: “Testando” (Exatamente como eu esperava)

Porem quando eu anoto a classe Cliente com @Component,
ele passa a injetar a classe Cliente na Classe Utilitario, com a propriedade Nome = null.

Ou seja parece que ele ignora o método anotado @Bean com a criação da classe Cliente.

Minha pergunta é se este comportamento é normal.

Pq isto ocorre ? Eu não posso anotar as classes de modelo que irei utilizar posteriormente ?

Seguinte configuração:

public class AppMain {
	public static void main(String[] args) {
		AnnotationConfigApplicationContext context;
		
		//context = new AnnotationConfigApplicationContext("br.com.casadocodigo");
		context = new AnnotationConfigApplicationContext();
		context.scan("com.clebiovieira.teste");
		context.refresh();
				
		Utilitario util = (Utilitario) context.getBean("utilit");
		System.out.println(util.getCliente().getNome()); 
				
		context.close();
	}
}
@Configuration
public class JavaConfig {
	
	@Bean
	public Cliente cliente(){					
		return new Cliente("Testando");
	}

}
@Component("utilit")
public class Utilitario {
	
	@Autowired
	private Cliente cliente;

	public Cliente getCliente() {
		return this.cliente;
	}
	
	
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}  
}
public class Cliente {
	
	public Cliente(String nome) {
		this.nome = nome;
	}

	public Cliente() {
		
	}

	private String nome;

	public void init() {
		
		System.out.println("Bean Cliente iniciado");
	}
	public void cleanup() {
		
		System.out.println("Bean Cliente destruido");
	}	
	
	
	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}
}

Pessoal, resolvido.
Se eu quero garantir que sempre seja injetado uma nova instância de meu Bean, a classe Cliente,
é só anotar o método também com o @Scope=“prototype”.

Ou seja, toda vez que minha classe Utilitario for instanciada, o container irá injetar uma nova instância do Bean Cliente.

@Configuration
public class JavaConfig {
	
	@Scope("prototype")
	@Bean(initMethod="init",destroyMethod="cleanup")
	public Cliente cliente(){					
		return new Cliente("Testando");
	}
}