교재 실습/자바 웹 개발 워크북152 134. XML 기반 빈 관리 컨테이너 (4) 4. 익명 빈 선언 설정 파일에서 빈을 선언할 때 빈의 이름을 지정하지 않을 수 있다. 이런 빈을 '익명(anonymous) 빈'이라고 부른다. 어떻게 선언하고 사용하는지 살펴본다. - 실습 패키지 생성 exam 패키지 아래에 test03 패키지를 생성한다. test02 패키지의 모든 파일을 test03 패키지에 복사한다. - beans.xml 빈 설정 파일 exam/test03/beans.xml 파일을 열고 다음과 같이 편집한다. 이전 실습 때와는 달리 빈을 선언할 때 id나 name 값을 지정하지 않는다. 이렇게 빈의 이름을 지정하지 않으면 컨테이너에 보관할 때 "패키지 이름 + 클래스 이름 + #인덱스"를 빈의 이름으로 사용한다. 동일한 클래스의 객체가 여러 개 생성될 경우를 대비해 빈 이름 뒤에 .. 2022. 10. 19. 133. XML 기반 빈 관리 컨테이너 (3) 3. name 속성으로 빈 이름 지정하기 태그를 사용하여 자바 빈을 선언할 때 id 속성 대신 name 속성에 빈 이름을 지정할 수 있다. id 속성과 name 속성의 차이점은 다음 테이블에 정리하였다. 항목 id 속성 name 속성 용도 빈 식별자를 지정한다. 중복되어선 안된다. 인스턴스의 별명을 추가할 때 사용한다. id와 마찬가지로 중복되어선 안된다. 여러 개의 이름 지정 불가! 콤마(,), 세미콜론(;) 또는 공백을 사용하여 여러 개의 이름을 지정할 수 있다. 첫 번째 이름은 컨테이너에 빈을 보관할 때 사용되고, 나머지 이름은 빈의 별명이 된다. 빈 이름 작성 규칙 스프링 프레임워크 3.1 이전 버전은 이름에 문자, 숫자, 밑줄(_), 하이픈(-), 점(.)을 사용할 수 있었다. 이름 시작은 문자.. 2022. 10. 17. 132. XML 기반 빈 관리 컨테이너 (2) 2. 스프링 빈 컨테이너 ClassPathXmlApplicationContext 사용 build.gradle 파일에서 스프링 라이브러리를 가져오는 부분을 dependencies 블록에서 더 직관적으로 표현했다. plugins { id 'org.springframework.boot' version '2.3.1.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java' } group = 'com.example' version = '0.0.1-SNAPSHOT' sourceCompatibility = '1.8' configurations { compileOnly { extendsFrom annotationProcessor } }.. 2022. 10. 15. 131. XML 기반 빈 관리 컨테이너 (1) 스프링 프레임워크는 우리가 만든 spms.context.ApplicationContext 클래스보다 훨씬 더 뛰어난 객체 관리 컨테이너(IoC 컨테이너라고도 부름)를 제공한다. 스프링에서는 자바 객체를 '빈(Bean)' 이라고 한다. 그래서 객체 관리 컨테이너를 '빈 컨테이너'라 부른다. 스프링 IoC 컨테이너(빈 컨테이너)를 우리의 예제 프로젝트에 적용하기 전에 먼저 간단히 사용법을 배워 본다. 스프링 IoC 컨테이너는 두 가지 방법으로 빈 정보를 다룬다. XML과 어노테이선이다. 이번 절에서는 XML을 기반으로 한 빈 관리 방법을 배운다. 어노테이션을 이용한 방법은 다음 장에서 진행한다. 1. ApplicationContext 인터페이스 스프링은 IoC 컨테이너가 갖추어야 할 기능들을 Applicat.. 2022. 10. 14. 130. Gradle 빌드 파일 분석 (3) 6. 테스트 정보 설정 - test {} JUnit(3.8.x 또는 4.x) 이나 TestNG를 실행할 때 필요한 정보는 test 블록을 사용하여 설정한다. 테스트 작업을 위한 주요 속성 및 함수는 다음의 표에 정리하였다. 속성/함수 이름 설명 classpath 테스트 작업을 수행할 때 사용할 클래스 경로 지정 excludes 테스트에서 제외할 클래스 지정. ANT 스타일 패턴을 사용한다. 예) excludes = ['org/foo/**'] → org.foo 패키지 아래의 모든 클래스(하위 패키지 포함)들은 테스트에서 제외. includes 테스트에 포함할 클래스 지정. ANT 스타일 패턴을 사용한다. systemProperties 테스트를 실행하는 JVM에 전달할 시스템 프로퍼티 지정 예) system.. 2022. 10. 13. 129. Gradle 빌드 파일 분석 (2) 3. jar 작업과 제어 속성 - jar {} jar 작업은 Java 플러그인에 속해 있으며 .jar 파일을 생성하는 일을 한다. 다음의 속성값을 조정하면 jar 파일 이름이나 .jar 파일 안에 넣어야 할 것과 넣지 말아야 할 것 등을 조정할 수 있다. jar 작업의 주요 속성 이름과 설명을 나타낸 표이다. 속성 이름 설명 archiveName JAR 파일 이름. 지정하지 않으면 다음의 규칙에 따라 생성된다. [baseName]-[appendix]-[version]-[classifier].[extension] baseName JAR 파일의 기본 이름 appendix JAR 파일명에서 appendix 부분에 놓일 이름 version JAR 파일명에서 version 부분에 놓일 이름 지정하지 않는다면 프로.. 2022. 10. 12. 128. Gradle 빌드 파일 분석 (1) 이번 절에서는 우리가 생성한 프로젝트에 있는 Gradle 빌드 스크립트 파일(build.gradle)의 내용을 하나씩 분석해 본다. (교재의 build.gradle 파일을 예제로 분석한다) 1. Gradle 플러그인이란? Gradle 플러그인은 자주 사용할 만한 빌드 명령어를 미리 작성하여 묶어 놓은 일종의 라이브러리 이다. 자바로 비교하자면 유틸리티 클래스라 할 수 있다. 자바의 Math 클래스에는 수학 연산에 관한 다양한 메서드가 있다. Gradle 플러그인에도 그 용도에 맞추어 다양한 빌드 명령어가 들어 있다. 따라서 작업 목적에 맞는 플러그인을 찾아 Gradle 빌드 파일에 적용하기만 하면 직접 복잡한 빌드 스크립트를 작성해야 하는 번거로움에서 벗어날 수 있다. - build.gradle 코드 분.. 2022. 10. 11. 127. 스프링 IoC 컨테이너 사용 준비 (4) 5. 실습 프로젝트 정리 Gradle 프로젝트를 생성하면 기본 예제 파일도 함께 만들어지는데 이 예제 파일을 제거한다. 또한 프로젝트 속성 정보를 보면 프로젝트의 컴파일러 버전도 1.5로 되어 있는데 이것을 1.7로 변경한다. (교재에서 사용하는 방식인 2014년도와 현재 실습하는 2022년도의 설정하는데 차이가 있어서 교재와 다른 방법으로 하였다. 다른 방법은 교재 방법 이후 소개한다. 다만 정확하지 않을 수 있어서 실습을 해나가면서 수정할 수 있다.) 프로젝트의 src 폴더에서 예제 파일을 삭제한다(그림 1). 프로젝트 속성창을 열고 'Java Compiler' 노드를 선택한다. 프로젝트를 컴파일 할 때 사용할 컴파일러 정보가 오른쪽 화면에 출력된다. 내용을 살펴보면 'Enable project sp.. 2022. 10. 10. 126. 스프링 IoC 컨테이너 사용 준비 (3) 4. 스프링 프레임워크 관련 라이브러리 가져오기 프로젝트에서 스프링 프레임워크의 기능을 활용하려면 관련 라이브러리를 가져와야 한다. Gradle을 사용하면 라이브러리를 제공하는 홈페이지에 접속하여 번거롭게 파일을 내려받기할 필요가 없다. Gradle 설정 파일에 필요한 라이브러리 정보를 등록만 하면 된다. (교재에서 등록한 스프링 라이브러리 정보는 예전 방식이라 그래들 빌드시 오류가 발생한다.) 스프링 홈페이지 https://spring.io/에 접속하여 Learn - Guides - Build Java Projects with Gradle와 Learn - Quickstart에서 https://start.spring.io/를 실행하여 만들어지는 프로젝트의 build.gradle을 참고하여 그래들 빌드를 .. 2022. 10. 4. 이전 1 2 3 4 5 6 ··· 17 다음