java

· Spring
@Pointcut 가 아닌 @Around에 execution 명시자를 직접 지정할 수 도 있습니다. @Asepct public class CacheAspect{ @Around("execution(public * chap07..*(..))") public Object execute(ProceedingJoinPoint joinPoint) throws Throwable { ... } } 만약 같은 Pointcut을 여러 Advice가 함께 사용한다면 공통 Pointcut을 재사용할 수도 있습니다. ExeTimeAspect @Aspect @Order(1) public class ExeTimeAspect { @Pointcut("execution(public * chap07..*(long))") private vo..
· Spring
이번에는 Spring에서 Advice 적용 순서에 대해 알아보겠습니다. 한 Pointcut에 여러 Advice를 적용할 수도 있습니다. CacheAspect package aspect; import java.util.HashMap; import java.util.Map; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; /** * 간단하게 캐시 기능을 구현한 클래스 */ @Aspect public class CacheAspect { privat..
· Algorithm
27866번: 문자와 문자열 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$) www.acmicpc.net 문제 단어 S와 정수 i가 주어졌을 때, S의 i번째 글자를 출력하는 프로그램을 작성하시오. 저는 문자열 함수 인 charAt()를 사용했습니다. package main; import java.util.*; import java.io.*; // The main method must be in a class named "Main". class Main27866 { public static void main(String[] args) throws Exc..
· Algorithm
10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 이 문제는 높이 H, 폭 W으로 구성된 호텔에 N 번째 사람이 가장 가깝게 들어갈 호실을 구하는 문제입니다. 이 문제의 핵심은 엘레베이터를 타고 층수로 올라가는 거리를 따지지 않는다는 점입니다. 문제에서 102호 보다 2101호를 선호한다는 것에 힌트가 있습니다. 저는 해당 문제를 4가지 경우의 수를 세우고 문제에 접근하였습니다. 1. 높이 H가 N 명 보다 작은 경우 2. 높이 H가 N 명 보다 작고, N 이 H와 나누어 떨어지는 경우 3. 높이 H..
· Spring
Aspect를 적용할 위치를 지정할 때 사용한 Pointcut 설정을 보면, execution 명시자를 사용했습니다. @Aspect public class ExeTimeAspect { @Pointcut("execution(public * chap07..*(..))") private void publicTarget() { } execution 명시자는 Advice를 적용할 메서드를 지정할 때 사용합니다. 기본형식 execution(수식어패턴? 리턴타입패턴 클래스이름패턴?메서드이름패턴(파라미터패턴)) '수식어패턴'은 생략가능하며 public, protected 등이 옵니다. 스프링 AOP는 public 메서드에만 적용할 수 있기 때문에 사실상 public만 의미가 있습니다. '리턴타입패턴'은 리턴 타입을 명..
· Spring
[Spring] Spring AOP 구현해보기 (@Aspect, @Pointcut, @Around) 이전 글 [Spring] Spring AOP AOP AOP : Aspect Oriented Programming의 약자로, 여러 객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법입니다. AOP는 핵심 기능과 공통 기능 muscleking3426.tistory.com 프록시 생성 방식 package config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context...
· Spring
스프링 컨테이너는 빈 객체를 한 개만 생성합니다. 과연 그런지 한번 코드를 통해 알아볼까요? public class Main { public static void main(String[] args) { //1. 컨테이너 초기화 AbstractApplicationContext ctx = new AnnotationConfigApplicationContext(AppCtx3.class); //2. 빈 객체 로드 후, 사용하기 Client client = ctx.getBean(Client.class); Client client2 = ctx.getBean(Client.class); System.out.println("두 개의 객체가 같을까 ? : " + (client == client2)); client.send(..
· Spring
컨테이너 초기화와 종료 스프링 컨테이너는 초기화, 종료 라이프사이클을 갖고 있습니다. 컨테이너 초기화 AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class); 위 예제를 보면, AnnotationConfigApplicationContext 생성자를 이용해서 컨텍스트 객체를 생성하는데 이 시점에 스프링 컨테이너를 초기화합니다. 컨테이너에서 빈 객체 구하고 사용 Greeter g = ctx.getBean("greeter", Greeter.class); String msg = g.greet("스프링"); System.out.println(msg); 스프링 컨테이너는 설정 클래스에서 정보를 읽..
· Spring
AOP(Aspect-Oriented Programming)는 소프트웨어 개발에서 모듈화와 코드 재사용을 향상하기 위한 프로그래밍 패러다임 중 하나입니다. AOP는 주로 코드의 횡단 관심사(Cross-Cutting Concerns)를 분리하여 모듈화하는 데 중점을 둡니다. 횡단 관심사란 응용 프로그램의 여러 부분에서 발생하는 비즈니스 로직과는 관련이 적지만 여러 부분에서 공통적으로 나타나는 관심사를 의미합니다. AOP의 핵심 아이디어는 횡단 관심사를 각각의 핵심 모듈에서 분리된 모듈로 정의하고, 이러한 모듈을 필요한 위치에 삽입하여 코드의 재사용성과 유지보수성을 향상시키는 것입니다. 이를 위해 AOP는 주로 다음과 같은 개념의 구성요소를 사용합니다. 1. Ascept (관점) 관점은 횡단 관심사를 정의하는..
· Spring
이전 글에서 Autowired에 대한 포스팅을 했으니 읽고 오시면 이해하시기 쉽습니다. 굳이 읽지 않으시고 바로 보셔도 무방합니다. [Spring] @Autowired - 의존성 자동주입 Spring 프레임워크에서 @Autowired 어노테이션은 자동 의존성 주입을 강력한 도구로 사용됩니다. @Autowired을 통해 Spring은 Application Context에서 필요한 Bean을 찾아서 해당 필드에 주입합니다. 이를 통해 muscleking3426.tistory.com Spring에서 @Autowired 어노테이션은 일반적으로 Spring 컨테이너가 자동으로 빈을 주입할 때 사용됩니다. 그러나 때로는 특별한 경우에 수동으로 빈을 등록하고 주입할 때가 있습니다. 이번에는 @Autowired 어노테..
runnnerDevHong
'java' 태그의 글 목록 (3 Page)