Spring Framework란?

  • Enterprise Application에서 필요로 하는 기능을 제공하는 프레임워크
  • Enterprise Application 개발을 쉽고 편리하게 할 수 있도록 지원해주는 경량급 오픈 소스 프레임워크
경량 프레임워크(light-weight Framework)

경량 프레임워크(light-weight Framework)라는 용어는 90년대 말에 복잡한 구동 환경과 하드웨어적인 구성이 필요한 프레임워크의 반대되는 개념으로 등장했다. 과거 J2EE 기술은 너무나 복잡하고 방대했기 때문에, 그 전체를 이해하고 개발하기에는 어려운 점이 많아서, 특정 기능을 위주로 간단한 jar 파일 등을 이용해서 모든 개발이 가능하도록 구성된 프레임워크이다.

 

Spring Framework의 특징

  1. POJO 기반의 구성
    객체 간의 관계를 구성할 때 별도의 API 등을 사용하지 않는 POJO(Plain Old Java Object)의 구성만으로 가능하도록 제작되었다. 즉, 일반적인 Java 코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다. 개발자는 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않은 채 가장 일반적인 형태로 코드를 작성하고 실행할 수 있기 때문에 생산성에서도 유리하고, 코드에 대한 테스트 작업 역시 좀 더 유연하게 할 수 있다.
  2. AOP의 지원
    AOP(Aspect Oriented Programming)는 비즈니스 로직은 아니지만 반드시 처리가 필요한 부분을 모듈로 분리하는 프로그래밍의 패러다임이다. Spring Framework를 이용하면 반복적인 코드를 줄이고, 핵심 비즈니스 로직에만 집중할 수 있다.
  3. 트랜잭션의 지원
    스프링은 트랜잭션의 관리를 어노테이션이나 XML로 설정할 수 있기 때문에 개발자가 매번 상황에 맞는 코드를 작성할 필요가 없도록 설계되었다.
  4. 의존성 주입(DI)을 통한 객체 간의 관계 구성
    '의존성 주입(DI: Dependency Injection)' 방식을 사용하려면 오른쪽 그림의 바깥쪽 도형처럼 추가적인 하나의 존재가 필요하게 된다. 이 존재는 의존성이 필요한 객체에 필요한 객체를 찾아서 '주입'하는 역할을 하게 된다.
    Spring Framework는 설정 파일이나 어노테이션을 통해 객체간의 의존관계를 설정하도록 한다.


application.properties

  • 스프링 부트가 자동으로 로딩하게 되는 규약 파일
  • 경로: src/main/resources/application.properties
  • 스프링 부트는 복잡한 XML 설정 대신 application.properties 파일에 간단하게 설정하는 방식을 사용한다.
1
2
3
4
5
6
7
8
9
10
11
server.port=9091
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
spring.devtools.livereload.enabled=true
#datasource
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@localhost:1521/XE
spring.datasource.username=scott
spring.datasource.password=tiger
#mybatis
mybatis.mapper-locations=classpath:mappers/**/*.xml
cs

 

server.port

  • 별다른 설정을 하지 않으면 default 포트 번호는 8080이다.
  • 여기서는 9091로 설정하였다.
1
server.port=9091
cs

 

prefix / suffix

  • JSP 페이지를 처리하기 위한 접두사와 접미사
  • 앞서 생성한 JSP의 경로를 prefix로 선언, 확장자는 suffix로 선언할 수 있다.
1
2
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
cs

 

MyBatis 적용하기

1
2
#mybatis
mybatis.mapper-locations=classpath:mappers/**/*.xml
cs

+ Recent posts