1. POJO(plain old java object)구성
특정 라이브러리나 컨테이너의 기술에 종속적이지 않음을 의미한다.
Java코드를 이용해서 객체를 구성하는 방식 그대로 스프링에서 사용 할 수 있기 때문에 자유롭게 객체지향적 설계를 구현 할 수 있다. 즉 일반적인 형태로 코드를 작성하고 실행할 수 있어서 높은 생산성과 유연한 테스트를 할 수 있다.
2. AOP(Aspect Oriented Programming)관점 지향 프로그래밍
-AOP는 개발할 때 핵심기능과 공통기능을 분리시켜 핵심기능의 로직에 영향을 끼치지 않게 공통기능을 사용하는 형태이다. 중복되는 코드를 줄일 수 있고 나중에 문제가 발견될 때 핵심기능과 공통기능을 따로 수정할 수 있어 효과적이다. 또한, 개발자에게 비즈니스 로직만 집중할 수 있도록 해준다.
3. 제어의 역행(Inversion of Control, IoC)
스프링은 여러 개의 모듈로 구성되어 있으며 각 모듈은 하나 이상의 JAR 파일로 구성되어 있다. 이 몇개의 JAR파일만 있으면 개발과 실행이 모두 가능 하다.이러한 이유로 베포 또한 빠르고 쉽다.