728x90
목차
- 개발을 위한 준비
- 스프링의 특징과 의존성 주입
- 스프링과 Oracle Database 연동
- Mybatis 스프링 연동
1. 개발을 위한 준비
- JDK 1.8버전 설치
- STS(Eclipse) 설치 및 프로젝트 생성
- Tomcat 설치 및 연동
- 오라클 데이터베이스 / SQL Developer 설치 및 설정
- 롬복 설치
- 스프링 프로젝트 생성 및 라이브러리 추가
- MyBatis / mybatis-spring 설정
- 스프링 MVC 개발 설정
- 프로젝트 생성
- Spring Legacy Project 메뉴를 이용해서 생성한다.
1 | src/main/java | 작성되는 코드의 경로 |
2 | src/main/resources | 실행할 때 참고하는 기본 경로(주로 설정 파일들을 넣는다.) |
3 | src/test/java | 테스트 코드를 넣는 경로 |
4 | src/test/resources | 테스트 관련 설정 파일 보관 경로 |
src ➡ main ➡ webapp ➡ WEB-INF ➡ spring / views |
||
5 | servlet-context.xml | 웹과 관련된 스프링 설정 파일 (*스프링은 원래 웹을 위한 건 아님. 그래서 웹과 spring 따로 설정 파일이 존재함) |
6 | root-context.xml | 스프링 프레임워크에서 관리해야 하는 객체(빈) 설정 파일 (스프링이 로딩되면서 읽어 들이는 문서) |
7 | web.xml | Tomcat의 web.xml 파일 |
8 | pom.xml | Maven이 사용하는 pom.xml |
2. 스프링의 특징과 의존성 주입
(1) 스프링
- 프레임워크 : 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가
- 장점 : 개발 시간 단축 / 반쯤 완성된 상태에서 필요부분 조립하는 형태의 개발 가능
- 스프링 장점
- 경량화된 프레임워크 : 특정 기능 위주로 간단한 파일들로 모든 개발이 가능하도록 구성된 프레임워크
- 프로젝트의 전체 구조 설계 시 유용
- 다른 프레임워크들과의 통합 지원 가능 : 혼용 사용 가능 - 스프링 특징
- POJO(Plain Old Java Object) 기반의 구성
- 의존성 주입(DI)을 통한 객체 간의 관계 구성
- AOP(Aspect-Oriented-Programming) 지원
- 편리한 MVC 구조
- WAS의 종속적이지 않은 개발 환경
(2) 의존성 주입
- 의존성 : 하나의 객체가 다른 객체의 상태에 따라 영향을 받는 것
- 의존성 주입 : A가 B가 필요하다는 신호만 보내고, B 객체를 주입하는 것은 외부에서 이루어지는 방식
➡ 스프링은 이러한 구조를 만드는 데 적합한 구조로 설계되어 있다.
➡ ApplicationContext라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해 준다.
➡ 객체와 객체를 분리해 생성하고 이러한 객체들을 엮는(wiring) 작업을 하는 형태로 개발한다.
*빈(Bean) : ApplicationContext가 관리하는 객체들(= 스프링에서 관리되는 객체)
(3) 스프링이 동작하면서 생기는 일
스프링 프레임워크 시작 ➡ Context 생성(메모리 영역) ➡ ApplicationContext 객체 생성 |
객체들에 대한 설정 필요 ➡ root-context.xml의 <context:component-scan> 내용을 통해 패키지 scan 시작 |
패키지 내 클래스들 중 @Component라는 어노테이션이 존재하는 클래스의 인스턴스 생성 |
B객체가 필요하다는 @Autowired(어노테이션) 설정이 있으면 ➡ B객체를 주입해야 함 |
(4) Annotation 어노테이션
클래스와 메서드에 추가하여 다양한 기능을 부여하는 역할
@Data | Lombok의 setter를 생성하는 기능, 생성자, toString() 등을 자동으로 생성 |
@Component | 스프링에게 해당 클래스가 스프링에서 관리해야 하는 대상임을 표시 |
@Setter | 자동으로 setXXX()를 컴파일 시 생성 |
@Autowired | 해당 인스턴스 변수가 스프링으로부터 자동으로 주입해 달라는 표시 |
@Log4j | Lombok을 이용해서 로그를 기록하는 Logger를 변수로 생성 |
@AllArgsConstructor | 인스턴스 변수로 선언된 모든 것을 파라미터로 받는 생성자 작성 |
@RequiredArgsConstructor | @NonNull이나 final이 붙은 인스턴스 변수에 대한 생성자를 만들어 냄 |
3. 스프링과 Oracle Database 연동
(1) 오라클 설치
(2) SQL Developer 설치
(예제에 사용하는 계정 생성 ➡ 8080 포트 변경)
(3) 프로젝트의 JDBC 연결
(4) 커넥션 풀 설정 (Data Source 설정)
- 여러 명의 사용자를 동시에 처리해야 하는 웹 애플리케이션 데이터베이스 연결 시 사용
- HikariCP 사용 : pom.xml에 라이브러리 추가
4. Mybatis 스프링 연동
- SQL Mapping 프레임워크
- SQL과 Object간의 관계를 매핑해주는 역할
- JDBC코드에 비해 처리하는 부분이 간결해지고, close처리등이 지원 - Spring에서의 사용
- 스프링은 MyBatis와의 연결을 위한 mybatis-spring 라이브러리을 이용해서 연동 처리
728x90
'🤯TIL > Spring' 카테고리의 다른 글
[게시판 만들기 - 3 ] 게시판 읽기 (0) | 2022.12.06 |
---|---|
[게시판 만들기 - 2 ] 게시판 목록 (0) | 2022.12.05 |
[게시판 만들기 - 1 ] 글쓰기 폼 만들기 / 글쓰기 저장 (0) | 2022.12.05 |
[코배스] Part 3-1. 기본적인 웹 게시물 관리 / 게시판 만들기 (0) | 2022.11.21 |
[코배스] Part 2. 스프링 MVC 설정 (0) | 2022.11.15 |