Este projeto é um exemplo de como criar um framework web inspirado no Spring do zero. Ele inclui funcionalidades básicas como injeção de dependências, mapeamento de rotas e um contêiner web embutido.
- Java
- Maven
- Tomcat Embutido
- Gson
src/main/java/br/com/gabspring/: Contém o código do framework GabSpring.annotations/: Anotações personalizadas para mapeamento de rotas e injeção de dependências.datastructures/: Estruturas de dados utilizadas pelo framework.explorer/: Classes para exploração de metadados.util/: Utilitários como o logger.web/: Classes relacionadas ao contêiner web e ao despachante de requisições.
- Injeção de Dependências: Utiliza anotações para injetar dependências automaticamente.
- Mapeamento de Rotas: Mapeia métodos de controladores para rotas HTTP usando anotações.
- Contêiner Web Embutido: Utiliza Tomcat embutido para servir a aplicação.
- Anotações: Utilize anotações como
@GabController,@GabService,@GabGetMethod,@GabPostMethode@GabInjectedpara definir controladores, serviços, métodos de requisição e injeção de dependências. - Exploração de Classes: O
ClassExplorerencontra todas as classes anotadas e registra suas informações. - Despachante de Requisições: O
GabSpringDispatchServletlida com as requisições HTTP, invocando os métodos apropriados dos controladores.
Link para o exemplo de uso: gabspringapp
@GabController
public class TestController {
@GabInjected
private IServiceExample serviceExample;
@GabGetMethod(path = "/test")
public String test() {
return "Hello, World!";
}
@GabGetMethod(path = "/service")
public String getServiceMessage() {
return serviceExample.getMessage();
}
}@GabService
public class ServiceExample implements IServiceExample {
@Override
public String getMessage() {
return "Hello from ServiceExample!";
}
}Este projeto é uma ótima maneira de entender os conceitos fundamentais por trás de um framework web como o Spring. Divirta-se explorando e aprendendo!