Bom, quando eu faço o código abaixo:
<bean class="br.com.odontonew.dao.LivroDAO" id="livroDAO" />
Significa dizer que eu posso chamar em qualquer parte do meu código o “livroDAO” que automaticamente irá instanciar a classe LivroDAO ? Algo parecido com o código abaixo ?
public class MyApp{
public static void main(args[]){
List<Livro> listaDeLivros = livroDAO.findAll();
}
}
[quote=rlanhellas]Bom, quando eu faço o código abaixo:
<bean class="br.com.odontonew.dao.LivroDAO" id="livroDAO" />
Significa dizer que eu posso chamar em qualquer parte do meu código o “livroDAO” que automaticamente irá instanciar a classe LivroDAO ? Algo parecido com o código abaixo ?
public class MyApp{
public static void main(args[]){
List<Livro> listaDeLivros = livroDAO.findAll();
}
}
[/quote]
Não.
Significa que o container do Spring irá instanciar um objeto de livroDAO e mantê-lo em memória.
Porém, para que você possa utilizar esse objeto precisa dizer ao container do Spring que está solicitando o mesmo.
Se vai fazer um projeto não web, deverá utilizar alguma forma de acesso:
public class MessageRunner {
final static Logger logger = LoggerFactory.getLogger(MessageRunner.class);
/**
* Main method.
*/
public static void main(String[] args) {
logger.info("Initializing Spring context.");
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/application-context.xml");
logger.info("Spring context initialized.");
Message message = (Message) applicationContext.getBean("message");
logger.debug("message='" + message.getMessage() + "'");
}
}
*Retirado daqui
Se for web, você deverá ter configurado o web.xml propriamente e, se for JSF 2, precisará configurar o faces-config.xml para que haja a integração entre os frameworks.