728x90
- Spring
- 자바 어플리케이션 개발을 위한 프레임워크.
- 비즈니스 로직을 넣어 어플리케이션을 만든다.
- 스프링의 대표적 기능 : DI, AOP
- DI (Dependency Injection)
(의존성 : 어떤 클래스가 다른 클래스를 멤버로 포함하고 있는 상태. 즉, 멤버 변수라고 생각해도 됨.)
- 의존성을 없애려면 어떤 것을 해야 할까?
1. 직접적인 클래스를 사용 X -> interface 사용
2. 객체를 직접 생성 X -> 객체를 주입받아라.
- 기존에 직접 했던 멤버에 값을 주입(멤버 변수에 값을 세팅)하는 방법인 setter, 생성자 사용 ==> Spring 이 담당.
- - IOC (Inversion of Container)
- 객체를 생성하고, 객체를 주입하는 것이 Container의 역할이다.
- 객체 관리 시 자동적으로 singleton으로 관리해준다.
- 의존성을 주입해서, 유지보수(변경)을 용이하게 해준다.
Spring application이 동작하려면 POJO(Business logic), 설정 정보, 스프링 프레임워크 IoC Container가 있어야 한다.
Spring framework 만들고,
POJO 만들기. -> 자바 코드로만 이루어짐. 아직 스프링의 향이 느껴지는 곳은 없음..
메타 정보 작성 방법
- XML config : 명시적인 빈 작성
- Annotation config : 묵시적인 빈 생성=> xml + annotation or java + annotation
- Java config : 명시적인 빈 생성 -> @Configuration
Spring에서는 type 기반이 권장.
[ (현재까지) 자주 쓰는 Annotation ]
- @Configuration : file이 bean에 대한 설정을 담고 있다는 의미
- @Bean : 이것은 bean이므로 singleton으로 관리한다는 의미
- @Component : 이것은 bean이 될 클래스라는 의미.
- @ComponentScan : @Component라고 되어 있는 class를 찾아서 bean으로 등록해준다는 의미.
- @Autowired : 해당하는 타입의 bean이 있는지를 찾아서 넣어준다. type기반으로 bean 연결
- @Qulifier : 이름 기반으로 bean을 제한시킨다는 의미.
- @Value : String, int 등 Bean이 아닌 스칼라 값을 주입 받을 때 사용한다.
- @PropertySource : property 파일에 저장된 value값을 읽어올 때 사용한다.
[ bean을 용도에 따라 분류해보자 ! -> streotype ]
- @Repository
- @Service
- @Controller
- @Configuration
- @Component
[ test ]
- @Test
- Junit이라는 test framework를 사용한다.
- (Life cycle ->) @BeforeEach, @BeforeAll, @AfterAll, @AfterEach
- @RunWith : (Junit 4.x) Junit과 Spring을 연결시키기 위해 사용함.
- @ExtendWith : (Junit 5.x) Junit과 Spring을 연결시키기 위해 사용함.
- @ContextConfiguration : 어떤 설정 파일을 가지고 test할까요?
[ lombok ]
- @Slf4j : lombok --> Logger를 삽입해서 log라는 변수를 생성해준다. 얘를 이용해 log를 남길 수 있음.
728x90
'JAVA > java' 카테고리의 다른 글
[spring] MVC (0) | 2022.04.19 |
---|---|
[spring] AOP (0) | 2022.04.15 |
[Backend] Survlet, jsp (0) | 2022.04.03 |
Cookie (vs Session), + EL표현식 (0) | 2022.03.25 |
WAS, MVC 패턴에 대하여 (0) | 2022.03.23 |
댓글