Que o Spring é um framework fantástico, eu não preciso dizer. Seus projetistas criaram, a partir de um paradigma de container IOC, um ecossistema de frameworks que nos auxiliam em inúmeras tarefas, desde testes unitários a controle transacional, passando por segurança, MVC entre outras.
Algumas vezes precisamos rodar o Spring a partir de uma aplicação standalone (aquela que possui o método main()). Isso não é lá muito complicado, mas é interessante perceber que podemos usar todos os recursos do Spring, inclusive as anotações @Autowired, mesmo na classe que possui o método main.
Para inicializarmos o Spring, usalmente fornecemos um arquivo XML de configuração do ApplicationContext. A diferença agora é que iremos solicitar ao próprio Spring que inicialize a classe que contém o método main, e faça uso das anotações de @Autowired que estamos usando.
Veja o exemplo de uma classe que depende de um bean de serviço:
@Component
public class MyApplication{
@Autowired
private IMyService myService;
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("config.xml");
MyApplication app = context.getBean(MyApplication.class);
app.start()
}
private void start(){
myService.doSomething();
// ...
}
}
@Service
public class MyService implements IMyService {
public String doSomething() {
// ...
}
}
O arquivo config.xml deverá estar localizado no classpath da aplicação. Se estiver usando Maven, coloque na pasta src/main/resource
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <context:annotation-config /> <context:component-scan base-package="mypackage" /> </beans>
Se você quer saber como criar uma aplicação standalone com um único JAR e todas as suas dependências usando o Maven, leia o artigo que escrevi sobre o assunto.
Comentários
Powered by Facebook Comments