Greeter

정의정·2023년 6월 8일
0

Spring

목록 보기
3/12
post-thumbnail

💡 Greeter 프로그램 만들기

🌟 목표

스프링으로 간단한 환영 메시지를 출력하는 프로그램을 만들어보자.
이 과정에서 프로그램에 필요한 파일 구성과 스프링 설정과 빈(Baen) 객체에 대한 이해를 목표로 진행해보겠다.


🌟 Source

Greeter.java: 콘솔에 간단한 환영 메시지를 출력하는 자바 클래스
AppContext.java: 스프링 설정 파일
Main.java: main() 메서드를 통해 스프링과 Greeter을 실행하는 자바 클래스

1. Greeter.java

지난 포스팅에서 만들었던 프로젝트 폴더인 sp-chap01에서 시작하자.
src/main/java 폴더에 Greeter.java 파일을 생성한다.
New > Other... > Java/Class 선택 > next

위처럼 Package란에 chap01, Name란에 Greeter.java를 입력하고 [Finish] 버튼을 클릭하면 파일이 정상적으로 추가된 것을 확인할 수 있다.
다음 내용을 적어보자.

package chap01;

public class Greeter {
	private String format;

	public String greet(String guest) {
		return String.format(format, guest);
	}

	public void setFormat(String format) {
		this.format = format;
	}
}

작성 후 Ctrl + Shift + F 단축키를 사용하면 보기 편하게 정렬되니 참고하길 바란다.

greet() 메서드는 문자열을 파라미터로 받아와 String의 문자열 포맷을 이용해서 새로운 문자열을 생성한다.
setFormat() 메서드는 문자열 포맷을 지정한다.

사용 예)

Greeter greeter = new Greeter(); // greeter 객체 생성
greeter.setFormat("%s, 반가워요!"); // 문자열 포맷 지정
String msg = greeter.greet("홍길동"); // msg = "홍길동, 안녕하세요!"

2. AppContext.java

이제 스프링 설정 클래스를 작성해 볼 것이다.
파일 생성은 Greeter.java 생성과 비슷하니 생략한다.
chap01 패키지에 AppContext.java 파일을 만들고 다음과 같이 작성한다.

package chap01;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AppContext {

	@Bean
	public Greeter greeter() {
		Greeter g = new Greeter();
		g.setFormat("%s, 반가워요!");
		return g;
	}

}

@Configuration 애노테이션은 해당 클래스를 스프링 설정 클래스로 지정한다.
@Bean 애노테이션은 메서드가 생성한 객체를 스프링이 생성하는 객체인 빈(Bean) 객체로 등록한다. 이 애노테이션을 붙인 메서드는 객체를 생성하고 초기화해야 한다.

3. Main.java

이제 AppContext를 읽어와 사용할 Main.java를 작성할 것이다.
다음과 같이 작성해보자.

package chap01;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

	public static void main(String[] args) {
		AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(AppContext.class);
		Greeter g = ctx.getBean("greeter", Greeter.class);
		String msg = g.greet("홍길동");
		System.out.println(msg);
		ctx.close();
	}

}

AnnotationConfigApplicationContext 클래스는 자바 설정에서 정보를 읽어와 빈 객체를 생성하고 관리한다.

AnnotationConfigApplicationContext 객체를 생성할 때 AppContext 클래스를 파라미터로 전달한다. 그럼 생성된 객체 ctx는 AppContext 클래스에서 정의한 빈(Bean) 설정 정보를 읽어온다.

getBean() 메서드는 AnnotationConfigApplicationContext가 자바 설정을 읽어와 생성한 빈(Bean) 객체를 검색할 때 사용한다. 첫 번째 파라미터는 빈 객체의 이름이고, 두 번째 파라미터는 검색할 빈 객체의 타입이다. 따라서 첫 번째 파라미터로 메서드 이름인 "greeter", 두 번째 파라미터로 생성한 객체의 리턴 타입이 Greeter이므로 Greeter.class를 전달한다.

Greeter 객체 greet 메서드에 "홍길동"이라는 문자열을 파라미터로 전달했으니 반환 값은 "홍길동, 반가워요!"이다. 이 값을 msg에 저장하고 출력할 것이다.


🌟 결과

Main.java 파일을 우클릭하고 Run As > Java Application 버튼을 클릭하여 실행하면 "홍길동, 반가워요!"를 잘 출력한 것을 확인 할 수 있다.

홍길동, 반가워요!

🎀 줄이며...

지금은 Eclipse를 기준으로 작성하고 있는데, 역시 IntelliJ가 더 편하다. 언제부터 IntelliJ를 기준으로 포스팅할 진 모르겠지만, 조만간일 것 같다. 😅

많은 개발자들에게 사랑받는 이유가 있다. IntelliJ를 아직 써보지 않았다면 써보기를 강력 추천한다.

📖 교재 및 출처

  • 초보 웹 개발자를 위한 스프링5 프로그래밍 입문 | 최범균님 저
profile
배움 기록

0개의 댓글