Spring 개발일지(4) - 자바로 스프링 개발
Spring 개발일지는 여러 절로 구성되어 있습니다.
- Spring 개발일지(1) - 기본적인 상식
- Spring 개발일지(2) - 개발환경 구축
- Spring 개발일지(3) - 스프링 프로젝트 생성
- Spring 개발일지(4) - 자바로 스프링 개발
- Spring 개발일지(5) - 의존성 주입(DI)
- Spring 개발일지(6) - 의존 객체 주입 방법
- Spring 개발일지(7) - 의존 객체 자동 주입
- Spring 개발일지(8) - 의존 객체의 선택
설명하기에 앞서
안녕하세요. 풀스택 개발자를 위해 달려나가는 김준호 입니다.
이번 블로그 내용에서는
JAVA
를 이용하여 직접 Spring
을 적용하여 개발하는 시간을 갖도록 하겠습니다.
코드를 먼저 적용하면서 설명을 덧붙이도록 하죠.
그러면 시작해보겠습니다.
자바로 스프링 시작하기
자. 저번시간에 만들었던 저번에 만들었던 Project
를 이용하면 되겠습니다. 프로젝트 참고 자료는 여기를 참고해주시기 바랍니다.
그러면 프로젝트에 Class
를 만들어보도록 하죠.
기존에 있는 프로젝트에서
Class
를 생성하겠습니다.
일단
Main Class
를 먼저 생성해주시고, Main Method를 자동으로 생성해주는 것을 체크해주도록 합시다.
그리고 스프링을 간단하게 설명해드리기 위해서 클래스를 하나 더 생성하는데,
Register Class
를 생성하겠습니다.
이 Register Class를 통해 가정을 해보도록 합시다. 홈페이지가 있는데, 메인클래스에서 회원가입 버튼을 누르면 회원가입을 하도록 만들어봅시다. 아주 간단하게, 즉 상상의 나래를 펼치도록 해야합니다….ㅎㅎ
Register.java
에 내용은 이런식으로 적용하여 봅시다.
그리고doRegister()
메소드를 호출하여 실제로 회원가입이 된다고 가정하여 봅시다.
자 그러면 Main Class
에서는 이러한 메소드를 호출하기 위해서 객체
를 생성하고, 메소드
를 호출해야 하겠죠?? 이것이 기본적인 JAVA의 객체지향프로그래밍
특징입니다.
코드는 아래와 같습니다.
Main Class
에서 이런식으로 불러왔습니다. 이게 기본적인JAVA
방식입니다.
하지만 이러한 방식을 사용하게 되면 필요한 객체들을 계속 생성할 수 있고, 관리도 적절하지 않을 수 있습니다. JAVA Design Pattern 중 Singleton Pattern
을 사용하면 객체를 사용할 수 있지만 이러한 부분을 관리하는 것 또한 개발자의 업무부담이 늘고, 의존성이 높아질수 있는 점을 가정하면 Spring
의 사용은 혁신적인 방법입니다.
스프링을 통해 어떠한 형태로 변할 수 있는지 확인해보도록 합시다.
먼저 스프링 컨텍스트 안을 구성하는
Bean
객체를 생성해야합니다. 그래서 이러한 Bean 객체를 생성하기 위해서는XML
을 작성해야하는데 한번 따라해보시면서 이해해보도록 하죠.
먼저
src/main/Resource
에서 오른쪽 마우스를 누르신 후에New -> Others
를 눌러봅시다.
xml File
을 눌러주세요.
전자정부프레임워크는 플로그인이 많기 때문에 위에 검색하는 부분을 이용하면 더욱 편하답니다~~
경로는
src/main/Resource
를 클릭해주시고, 파일명은 처음 배우는 것이니까ApplicationContext
로 따라해보도록 합시다.
그리고 만들어진
ApplicationContext.xml
의 내용은 다음과 같이 작성해주세요!! 복붙합시다
bean
이라는 객체를 이용하게 되면Spring Container
에서 이러한 bean 객체를 꺼내서 사용할 수 있습니다. 즉 객체를 사용하려면new
를 이용하여 객체를 만들었지만Spring
에서는Container
가 생성해주기 때문에 이러한 객체들을 꺼내서 사용하면 된다는 의미입니다.
좀 더 살펴보도록 하죠. beans는 bean의 묶는 의미없는 존재입니다. bean의 id를 설정하여 Class가 같은 Bean 객체가 여러 개일 경우 id로 식별할 수 있습니다.
class 경로를 통해 이 class의 객체를 자동으로 생성한다는 의미입니다.
Main 함수의 코드가 조금 달라질 것입니다. 왜냐하면 new를 사용하지 않고 Spring Container를 이용하여 꺼내기 때문이죠. 한번 밑에 코드를 봐보도록 하죠!!
이렇게
GenericXmlApplicationContext
를 아까 만들어주신classpath:ApplicationContext.xml
을 파라미터로 넣어 생성하고,getBean
메소드를 통하여 객체를 받아와서 사용할 수 있습니다.
지금은 코드가 더 복잡해 보일 수 있습니다. 하지만 차후에 MVC 패턴을 배우다 보면 Bean 객체의 생성도 간략화 할 수 있는 기능들이 있습니다. 기초 먼저 쌓고 기술을 배우는 것이 가장 중요합니다.!! 그러면 코드 실행을 시켜서 객체를 생성하지 않아도 null값이 나오지 않고 제대로 구성되는지 확인해볼까요??
코드가 정상적으로 실행되었습니다.
코드리뷰 및 요약
XML
을 생성하고bean
에서id
와class
를 정의합니다.
GenericXmlApplicationContext
객체를 생성하고getBean
으로bean
객체를 받아옵니다.
마무리
오늘은 순수 JAVA를 이용하여 Spring Container를 사용해보았습니다.
이러한 Bean 객체를 Spring Container에게 제어권을 넘겨서 여러가지 코딩을 하는 편인데요.
다음시간에는 어떻게 하면 객체들을 생성 할 때, 의존하는 객체들을 넘길 수 있을지 알아보도록 하죠.
말이 어려울 뿐이지 객체를 생성할 때 파라미터를 스프링으로 넘기는 방법이라고 보시면 됩니다.!! 그러면 다음시간에 뵐게요!!
여기까지 따라오느라 고생 많으셨습니다!!!!!!!!!!!!!!!!