본문 바로가기

Java

스프링 AOP의 주요 용어 AOP는 Aspect Oriented Programming의 약자로 우리말로는 관점 지향 프로그래밍이라고 한다. 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로, 재사용성을 높여주는 프로그래밍 기법이라고 한다. AOP의 주요 용어는 아래와 같다. 아래 내용은 초보 웹 개발자를 위한 Spring4 프로그래밍 입문 에서 발췌하였다. 용어 의미 Joinpoint Advice를 적용 가능한 지점. 메서드 호출, 필드 값 변경 등이 Joinpoint에 해당한다. 스프링은 프록시를 이용해서 AOP를 구현하기 때문에 메서드 호출에 대한 Joinpoint만 지원한다. Pointcut Joinpoint의 부분 집합으로서 실제로 Advice가 적용되는 Joinpoint를 나타낸다. 스프링에서는 정규 표현식이나 As.. 더보기
스프링 Bean 객체의 초기화 및 소멸시 호출 메서드 스프링의 컨테이너가 Bean 객체의 초기화와 소멸에 따라 지정된 메서드를 호출 하는데.. 아래의 두가지 인터페이스에서 이 메서드를 정의 하고 있다. org.springframework.beans.factory.InitializingBean org.springframework.beans.factory.DisposableBean 만약 Bean 객체의 초기화 및 소멸 과정에 실행하고 싶은 작업이 있다면, 아래와 같이 InitializingBean과 DisposableBean을 구현하고, afterProperiesSet 메서드와 destroy메서드를 구현하면 된다. public class Bean implements InitializingBean, DisposableBean { ... @Override publ.. 더보기
스프링 Java 설정에서 XML 설정 참조하기. 스프링에서는 XML 설정과 자바 코드 설정을 동일하게 지원한다. 또한, 두가지 설정을 함께 사용할 수도 있는데. 아래와 같이 자바 코드에서 XML 설정을 참조 할 수 있다. @Configuration @ImportResource("classpath:설정XML파일명.xml") public class JavaConfig { ... }본 포스팅의 내용은 초보 웹 개발자를 위한 스프링4 프로그래밍 입문을 참고하여 작성하였습니다. 더보기
스프링 XML 설정에서 자바 설정 Import하기 스프링에서는 XML을 이용한 설정과, Java Class를 이용한 설정을 둘 다 지원 한다. 이때, 설정 XML에서 Java Config Class를 참조 할 수 있는데. 설정 XML에 아래와 같이 태그를 추가하면 된다. 본 포스팅의 내용은 초보 웹 개발자를 위한 스프링4 프로그래밍 입문을 참고하여 작성하였습니다. 더보기
스프링 @Autowired와 @Qualifier 사용법 스프링은 @Autowired 어노테이션을 통한 자동 주입을 지원한다. 아래와 같이 동일한 타입의 Bean이 두개이상 존재할 경우, 초기화 과정에서 익셉션이 발생한다. 스프링은 이런 문제를 해결하기 위해서 @Qualifier 어노테이션을 제공한다. 사용법은 아래와 같다. public class autowiredTargetClass { @Autowired @Qualifier("autowiredClass1") public void setAutowired(AutowiredClass autowiredClass) { .... } } 더보기
SpringBoot 서버 포트 변경하기 스프링부트(Spring Boot)를 사용할때, 서버의 포트를 변경하려면, 스프링부트 설정 파일인, application.properties에 설정을 추가하면 된다. 기본적으로 8080이지만, server.port = 8080 위와 같이, 변경할 포트를 설정해주면 된다. 더보기
스프링 MVC의 주요 구성 요소 및 처리 흐름 스프링 프레임워크는 DI나 AOP와 같은 기능뿐만 아니라 기본적으로 웹 개발을 위한 MVC 프레임워크도 함께 제공하고 있다. 스프링MVC는 스프링을 기반으로 하고 있기 때문에 스프링에서 제공하는 기능을등을 손쉽게 사용할 수있다는 장점을 갖는다.또 다른 종류의 프레임워크와 연동하는 수고를 하지 않아도 되는것도 장점중 하나다. * 스프링 MVC의 주요 구성 요소 DispatcherServlet 클라이언트의 요청을 전달 받는다. 컨트롤러에게 클라이언트의 요청을 전달하고 컨트롤러가 리턴한 결과 값 View에 전달하여 알맞은 응답을 생성하도록 한다. HandlerMapping 클라이언트의 요청 URL을 어떤 컨트롤러가 처리할지를 결정한다. Controller 클라이언트의 요청을 처리한 뒤, 그 결과를 Dispat.. 더보기
클래스의 정적 구성 요소 클래스의 기본적인 용도는 객체를 생성하는 것이고, 클래스에 선언된 필드와 메서드는 객체를 생성하고 나면 생성된 객체에 속하게 된다. 하지만, 때로는 클래스 자체에 속하는 구성요소를 선언해야 할 필요도 있다. 그런 구성요소를 정적(static) 구성요소라고 부른다. 정적 필드 일반적으로 필드는 객체의 고유한 데이터 값을 저장하기 위해 사용되지만, 경우에 따라서는 클래스 자체에 속하는 데이터를 저장할 변수도 필요하다. 그럴때는 클래스 안에 정적 필드(static field)를 선언하면 된다. 정적 필드란 필드의 선언문 앞에 static이라는 키워드를 붙여서 선언한 필드를 말한다. class Accumulator { int total = 0; static int grandTotal = 0; void accum.. 더보기
for 문을 이용하여 배열의 항목들을 순서대로 출력하는 프로그램 for문에서 반혹 회수를 카운트하는 변수는 배열의 인덱스로 사용하기에도 적합하기 때문에, for문은 배열 처리에도 많이 사용 됩니다. 다음은 for문으로 배열 항목을 처리하는 예를 보여주는 프로그램입니다. class ForExample1 { public static void main(String[] args) { int arr[] = {1,2,3,4,5,6,7,8,9,10}; for (int cnt = 0; cnt < arr.length; cnt++) { System.out.println(arr[cnt]); } } } class ForExample2 { public static void main(String[] args) { int arr[] = {1,2,3,4,5,6,7,8,9,10}; for (int.. 더보기
자바 배열의 선언, 생성, 이용 1차원 배열의 선언, 생성, 사용 class ArrayExample1 { public static void main(String[] args) { int arr[]; // 배열 변수 선언 arr = new int[10]; // 배열 생성 arr[0] = 10; // 값 대입 arr[1] = 20; // 값 대입 arr[2] = arr[0] + arr[1]; // 값 대입 System.out.println(arr[0]); // 배열 사용 System.out.println(arr[1]); // 배열 사용 System.out.println(arr[2]); // 배열 사용 } } 2차원 배열의 선언, 생성, 사용 class ArrayExample2 { public static void main(String[] .. 더보기