[Java / Spring] 5. 어노테이션을 이용한 객체 생성

2022. 4. 11. 13:47·🍃 Spring, Spring Boot/스프링 프레임워크 기초

이번 시간에는 어노테이션을 이용해서 객체를 생성하는 방법에 대해 알아보고자 한다.

 

우선 xml 파일에 있는 다음의 코드를 주석처리 해주었다.

<!-- ExamConsole console = new InlineExamConsole(); -->
<bean id="console" class="spring.di.ui.InlineExamConsole">
    <!-- console.setExam(exam); -->
    <!-- <property name="exam" ref="exam"/> -->
</bean>

 

이렇게 하면 xml 파일에서 객체를 생성하는 코드는 모두 사라졌을 것이다.

 

이후 객체를 생성할 클래스로 들어가 해당 클래스 위에 @Component 어노테이션을 작성해준다. 다음으로 이전 시간에 우리가 스프링에게 지시했던 것처럼 xml 파일에 코드를 작성해준다.

<context:component-scan base-package="spring.di.ui" />

 

이렇게 하면 <context:annotation-config /> 구문은 더 이상 필요가 없기 때문에 삭제해준다. 

 

이제 java 파일에서 생성된 객체를 받아오는 코드를 작성하고 실행하면 정상적으로 실행 되는 것을 확인할 수 있다.

ApplicationContext context = new ClassPathXmlApplicationContext("spring/di/setting.xml");

ExamConsole console = context.getBean(ExamConsole.class);
console.print();

 

다만 여기서 위와 같은 방식으로 하지 않고 이름으로 객체를 받아오려 할 경우 오류가 발생한다.

ApplicationContext context = new ClassPathXmlApplicationContext("spring/di/setting.xml");

ExamConsole console = (ExamConsole) context.getBean("console");
console.print();

 

이럴 경우 @Component 어노테이션에 다음과 같은 설정을 추가해줄 수 있다.

@Component("console")

 

이후 실행해보면 정상적으로 작동하는 것을 확인할 수 있다.

 

하지만 실행 결과를 보면 아직 Autowired가 되지 않은 것을 알 수 있다. 따라서 Exam 객체도 따로 만들어 주어야 한다.

 

우선 위에서 작성했던 xml 코드를 다음과 같이 수정해준다.

<context:component-scan base-package="spring.di.ui, spring.di.entity" />

 

즉, 두 클래스의 패키지 경로가 서로 다르기 때문에 확인해야하는 패키지 경로를 추가해준 것이다.

 

이제 클래스로 이동하여 @Component 어노테이션을 달아주면 된다.

 

이제 객체 안에 있는 속성의 기본 값들을 설정하기 위한 작업을 수행해보자. 이때 사용하는 어노테이션은 @Value이다.

@Value("20")
private int kor;
@Value("30")
private int eng;

 

이후 실행해보면 결과가 잘 출력되는 것을 확인할 수 있다.

 

Result

저작자표시 (새창열림)

'🍃 Spring, Spring Boot > 스프링 프레임워크 기초' 카테고리의 다른 글

[Java / Spring] 7. 순수 자바로 AOP 구현해보기  (0) 2022.04.17
[Java / Spring] 6. XML Configuration을 Java Configuration으로 변경하기  (0) 2022.04.11
[Java / Spring] 4. 어노테이션을 이용할 때의 장점과 @Autowired를 이용한 DI 해보기  (0) 2022.04.11
[Java / Spring] 3. 콜렉션 생성과 목록 DI  (0) 2022.04.11
[Java / Spring] 2. DI 값 설정  (0) 2022.04.11
'🍃 Spring, Spring Boot/스프링 프레임워크 기초' 카테고리의 다른 글
  • [Java / Spring] 7. 순수 자바로 AOP 구현해보기
  • [Java / Spring] 6. XML Configuration을 Java Configuration으로 변경하기
  • [Java / Spring] 4. 어노테이션을 이용할 때의 장점과 @Autowired를 이용한 DI 해보기
  • [Java / Spring] 3. 콜렉션 생성과 목록 DI
Baeg-won
Baeg-won
  • Baeg-won
    좋았다면 추억이고 나빴다면 경험이다.
    Baeg-won
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 🍃 Spring, Spring Boot
        • 스프링 프레임워크 기초
        • 스프링 핵심 원리 - 기본편
        • 자바 ORM 표준 JPA 프로그래밍 - 기본편
        • 스프링 MVC
        • 실전! 스프링 부트와 JPA 활용1 - 웹 애플리..
      • 🥑 Web Technoloy
      • 🚗 Backend Toy Project
        • 스프링 부트 게시판
        • Photogram
        • Baeg-won Clothing Gallery
      • 🥇 Problem Solving
        • Breadth-First Search
        • Depth-First Search
        • Backtracking
        • Simulation
        • Two-pointer
        • Binary Search
        • Greedy
        • Dynamic Programming
        • Minimum Spanning Tree
        • Dijkstra
        • Floyd warshall
      • ☕ Java
        • 명품 자바 에센셜
        • Applications
      • 🍦 JavaScript
        • JavaScript 기초
      • 🐧 Linux
        • 이것이 리눅스다(CentOS 8)
      • 📟 Database
        • 혼자 공부하는 SQL
      • 🧬 Data Structure
      • 🎬 HTML
      • 🎤 Tech Interview
      • 📌 etc
        • Unity 2D Raising Jelly Game
        • C++
        • 영어 쉐도잉
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Baeg-won
[Java / Spring] 5. 어노테이션을 이용한 객체 생성
상단으로

티스토리툴바