티스토리 뷰
Spring 에는 많은 모듈들이 있지만 그중에서 주로 다룰 것은 아래와 같다.
Spring Modules
- Boot
- Cloud
- Data
- Batch
- Security
또한 Spring 의 핵심 동작 원리를 알기 위해 배울 것은 아래와 같다.
- IoC/DI : 제어의 역전과 의존성 주입
- AOP : (Aspect) 관점 중심 프로그래밍
- PSA : 이식 가능한 추상화
IoC
일반 자바프로젝트에서는 new 이런식으로 새 객체를 만들어줘야하고 개발자가 직접 관리해줘야하지만
Spring에서는 Spring Container 가 객체들을 자동으로 관리해주며 알아서 싱글톤 패턴으로 만들어준다.
DI
아래는 Spring 프로젝트안에 들어간 Base64Encoder Class 이다.
class 선언부위에 @Component
어노테이션을 붙여주면 Spring Container 에게 Spring Bean 으로 만들어서 관리하라고 해주는 모습이다.
Spring Container 에서 관리되는 객체들을 Bean 이라고 한다.
Spring에서 Bean 을 주입받을 수 있는 곳은 변수, 생성자, set 메소드가 있다.
package com.example.ioc
import org.springframework.stereotype.Component
import java.util.*
@Component
class Base64Encoder : IEncoder {
override fun encode(message: String): String {
return Base64.getEncoder().encodeToString(message.toByteArray())
}
}
위와 같이 @Components 어노테이션을 붙여주면 IntelliJ 에서는 아래 사진과 같이 자동으로 관리/주입될 객체를 인식하여 보여준다.
// 하나의 class 에서 여러개의 Bean 을 등록하겠다고 명시해줄 때 사용한다.
@Configuration
class AppConfig{
@Bean("base64Encode")
fun encoder(base64Encoder: Base64Encoder): Encoder{
return Encoder(base64Encoder)
}
@Bean("urlEncode")
fun encoder(urlEncoder: UrlEncoder): Encoder{
return Encoder(urlEncoder)
}
}
'Spring' 카테고리의 다른 글
Spring ObjectMapper 실무 사례 알아보기 | 6일차 (1) | 2021.11.07 |
---|---|
객체지향과 디자인 패턴 & Web 기초 | 패스트캠퍼스 챌린지 5일차 (421) | 2021.11.05 |
객체지향과 디자인 패턴 & Web 기초 | 패스트캠퍼스 챌린지 3일차 (1) | 2021.11.03 |
무료 제공 IntelliJ 가이드를 마치고 정리해보았다 | 패스트캠퍼스 챌린지 2일차 (0) | 2021.11.02 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 중학교 단어
- 모의고사단어
- 초등단어게임
- 영어단어암기프로그램
- 단어시험
- 초등학교
- 초등단어장
- 2019년 3월 영어모의고사
- 영어단어암기
- 방과후영어
- 영어단어장
- 애니보카
- 고등모의고사
- 초등800
- 영어단어
- 초등단어
- 단어프로그램
- 영어
- 영어단어 시험지 다운로드
- 초등영어
- 영단어장
- 영단어게임
- 초등800단어
- 영단어
- 단어암기
- 영어단어게임
- 모의고사 단어
- 초등800단어장
- 영어단어 시험지
- 영어모의고사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
글 보관함