스프링은 자바 애플리케이션 개발을 위한 경량 프레임워크이다.스프링은 크게 두가지 특징이 있습니다.
위 두가지 특징이 있기 때문에 스프링 프레임워크는 "경량 프레임워크"라고 불리는 것입니다.
일반적으로 객체를 생성할 때 코드에 new를 사용하여 생성하지 않고, 프레임워크가 직접 객체를 생성하여 그것을 필요한 클래스에게 전달해주는 기능
애플리케이션의 여러 부분에 공통으로 적용되는 로직을 한 곳에 구현하고 애플리케이션 전반에서 자동으로 적용할 수 있게 해주는 기능
애플리케이션이 런타임 시점에 자바 객체를 사용할 수 있게 해주는 기능
유효성 검증 규칙을 일관된 방식으로 처리할 수 있게 도와주는 API(Validator 클래스)
데이터 액세스 도구와 통합이 잘 되며, 데이터 액세스 기술을 쉽게 혼용할 수 있는 기능
자바 빈을 XML로 XML을 자바 빈으로 자유롭게 변환이 가능
트랜잭션 추상화 레이어를 사용해 기본 트랜잭션 프로토콜과 리소스 관리자를 쉽게 변경할 수 있는 기능
JDNI로 접근할 수 있는 위치에 저장된 모든 리소스를 대상으로, 복잡한 코드없이 리소스를 런타임에 다른 객체에 의존성으로 주입할 수 있는 기능
웹 애플리케이션 개발 시 MVC 패턴과 광범위한 뷰를 제공(JSP,아파치 벨로시티, 프로마커, 타일즈 등등)
웹소켓은 클라이언트와 서버 사이에 지속적인 연결을 생성하기 위한 API로, 웹소켓 스타일의 개발은 빠른 응답의 애플리케이션을 위한 실시간 메시지를 교환하는 효율적인 전중 통신을 지원
원격 서비스에 쉽게 접근하고 원격 서비스를 노출할 수 있게 해주는 기능
DI를 이용한 이메일 메세지를 전송할 수 있는 API 제공
자바 이외의 다른 언어로 작성된 스크립트를 실행할 수 있게 해주는 기능
예외 처리 코드를 줄이고 에러 식별과 진단 기능을 향상시키는 기술
유지보수 작업을 할 때 정해진 시간에 코드를 실행하도록 예약하는 기능
위와 같은 기능들로 자바 애플리케이션을 개발 할 때 코드양과 복잡성을 줄이고, 가독성과 크로스 커팅 이슈를 해결할 수 있게 된다.