AOP를 위한 모듈 추가 aop 프로그래밍을 위해서 추가해야하는 모듈은 spring-aop와 aspectjweaver 모듈입니다. 각각은 AOP의 실행과 설정에 필요한 모듈입니다. spring-context를 추가할 때, spring-aop 모듈 또한 적용이 되므로 aspectjweaver을 dependency에 추가하도록 합시다. 이를 통해 설정에 필요한 어노테이션을 사용할 수 있게 됩니다. org.aspectj aspectjweaver 1.8.13 문제점1) 기존 코드의 수정 다음 두 함수의 실행시간을 비교를 해야한다고 가정하겠습니다. 하나는 계승을 반복문을 통해 구하는 함수이고 다른 하나는 재귀를 통해 구하는 것입니다. package chap07; public class ImpeCalculator ..
빈의 라이프 사이클 스프링 컨테이너는 객체를 생성하고 주입한 다음 초기화하고 소멸하는 것을 관리합니다. 스프링 컨테이너를 초기화 하는 과정에서는 객체를 생성하고 의존 관계를 설정합니다. 이 과정에서 자동 주입을 설정했던 것 또한 완료가 됩니다. 이후 구현한 초기화 메서드가 있다면 빈 객체의 초기화를 진행합니다. 컨테이너를 소멸하게 되면 빈 객체에 소멸 메서드가 구현이 되었다면 소멸 메서드를 실행한 후 컨테이너가 소멸됩니다. 초기화&소멸 인터페이스 이 두 과정이 필요하다면 아래의 인터페이스를 구현하면 됩니다. public interface InitializaingBean{ void afterPropertiesSet() throws Exception; } public interface DisposableBe..
컴포넌트 스캔 자동 주입과 함께 사용하는 추가 기능은 컴포넌트 스캔입니다. 컴포넌트 스캔을 사용하면 설정 클래스에서 @Bean을 사용하지 않더라도 원하는 클래스를 빈 객체로 만들수 있습니다. 설정 클래스에 다음과 같이 있다고 해봅시다. package config; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import spring..
@Autowired at field 이전 글에서 Autowired를 사용해 빈을 DI할 수 있다고 설명했습니다. 또한 사용하면 설정 클래스에서 생성자나 세터 메서드를 통해 DI를 하는 코드를 없앨 수 있습니다. @Autowired는 필드나 세터 메서드에 위치할 수 있는데 아래 코드는 필드에 적용한 예시입니다. public class MemberRegisterService { @Autowired private MemberDao memberDao; ... 위와 같이 했다면 설정 클래스에서 DI를 하는 코드를 제거할 수 있습니다. @Bean public MemberRegisterService memberRegSvc() { return new MemberRegisterService(); //return new ..
Container 이전 글에서 설명한 Assembler의 기능을 Spring이 제공을 해줍니다. 이를 위해 설정 클래스를 만들고 @Bean 어노테이션을 통해 객체를 생성합니다. package config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import spring.ChangePasswordService; import spring.MemberDao; import spring.MemberRegisterService; @Configuration public class AppCtx { @Bean public MemberDao memberDao()..
Dependency 한 클래스 내부에서 다른 클래스의 함수를 호출할 때 의존관계가 있다고 할 수 있습니다. 구체적으로 호출한 함수 명을 바꿀 때 다른 클래스 소스코드에서도 변경을 요구하는 관계를 의존이라 합니다. 방식1) 하나의 객체에 다른 객체를 넣는 것을 조립이라 칭하겠습니다. 조립을 할 때는 크게 두가지로 나뉩니다. 첫 번째 방식은 클래스 내부에서 직접 조립할 객체를 생성하는 방식입니다. package spring; import java.time.LocalDateTime; public class MemberRegisterService { //방식1) private MemberDao memberDao=new MemberDao(); ... 방식2) 위처럼 서비스 함수 내에 직접 Dao객체를 생성하는 것..
Maven 스프링이 사용하는 모듈과 플러그인에 대한 관리를 쉽게 해줍니다. 프로젝트의 루트폴더의 pom.xml을 통해 설정파일을 저장할 수 있습니다. 메이븐은 한개의 모듈을 아티팩트라는 단위를 통해 관리하게 되는데, 의존 모듈을 설정하는 것은 소스코드를 컴파일할 때 사용하는 클래스패스에 아티팩트를 추가하는 의미입니다. 아래 5.0.2RELEASE버전의 spring-context모듈을 클래스패스에 추가하기 위한 코드입니다. org.springframework spring-context 5.0.2.RELEASE Repository 아티팩트 파일은 로컬 리포지토리와 원격 리포지토리에서 가져와 사용하게 됩니다. 1차적으로 로컬 리포지토리에서 해당 아티팩트 파일이 있는지 확인한 후 있다면 사용합니다. 만일 없다면..
- Total
- Today
- Yesterday
- Suffix Array
- spring boot
- Oracle
- dfs
- sweeping
- 2-SAT
- knapsack
- dijkstra
- 이분매칭
- spring
- 이분탐색
- 세그먼트트리
- sorting
- greedy
- 정렬
- 동적계획법
- Segment tree
- 펜윅트리
- hld
- implementation
- bfs
- union find
- 좌표압축
- kmp
- SCC
- 트라이
- DP
- string
- Fenwick
- 스위핑
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |