Spring은 크게 Dependency Injection, Transaction Management 기술을 이용하여 웹어플리케이션, 데이터 액세스 등 서비스를 만드는데 도움주는 프레임워크이다.
Java Standard Edition 위에 Java Enterprise Edition을 얹어 Enterprise급 애플리케이션을 만들 수 있지만, 기본적으로 Spring은 Java EE의 부분적 기능들을 지원하기 때문에 굳이 EE를 사용하거나 혼용할 필욘 없다. 기업들은 상황과 요구에 맞게 Spring과 Java EE를 혼용하거나 따로 사용하기도 한다.
어떠한 환경을 사용하든, 웹 애플리케이션을 제작할 땐 크게 3가지 범주를 생각할 수 있다.
MVC 패턴
DI을 사용하여 구현한다. DI를 이해하기 위해선 느슨한 결합력과 인터페이스에 대해 알아야 할 필요가 있다.
Transaction
AOP를 이용하여 구현한다.
Authentication, Authorization
Servlet Filter를 이용하여 구현한다.