SW/Java

Java : Spring : bean : 사용방법, 예제, 관련 개념, 필요성

얇은생각 2020. 4. 7. 19:30
반응형

Java : Spring : bean : 사용방법, 예제, 관련 개념, 필요성

 

스프링 프레임워크

자바 코드 작성 부분을 줄일 수 있는 효과를 얻을 수 있습니다. 하지만 초기 프로젝트 세팅이 다소 복잡하므로 충분한 연습이 필요합니다. 스프링 프레임 워크 사용은 xml을 이용하는 방법과 자바 어노테이션을 이용하는 방법 두가지로 구분할 수 있습니다.

 

 

Maven 

자바 프로젝트의 빌드를 자동으로 해주는 도구입니다.  개발자가 xml에 작성한 프로젝트 정보를 토대로 컴파일하고 라이브러리를 연결하는 등의 작업을 해주는 도구입니다. Maven 서버를 통해 라이브러리를 다운받아 설정하는 작업도 수행합니다.

 

 

beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	                    http://www.springframework.org/schema/beans/spring-beans.xsd">
	                    
	<!-- <bean id='hello' class='kr.co.softcampus.beans.HelloWorldEn'/> -->
	<bean id='hello' class='kr.co.softcampus.beans.HelloWorldKo'/>
</beans>

 

HelloWorld

package kr.co.softcampus.beans;

public interface HelloWorld {
	
	public void sayHello();
}

 

HelloWorldEn

package kr.co.softcampus.beans;

public class HelloWorldEn implements HelloWorld{
	@Override
	public void sayHello() {
		// TODO Auto-generated method stub
		System.out.println("HI~~");
	}
}

 

HelloWorldKo

package kr.co.softcampus.beans;

public class HelloWorldKo implements HelloWorld{
	@Override
	public void sayHello() {
		// TODO Auto-generated method stub
		System.out.println("안녕하세요");
	}
}

 

MainClass

package kr.co.softcampus.main;

import org.springframework.context.support.ClassPathXmlApplicationContext;

import kr.co.softcampus.beans.HelloWorld;

public class MainClass {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// beans.xml 파일을 로딩한다.
		ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("kr/co/softcampus/config/beans.xml");
		
		// xml에 정의한 bean 객체의 주소값을 가져온다.
		HelloWorld hello1 = (HelloWorld)ctx.getBean("hello");
		callMethod(hello1);
		
		HelloWorld hello2 = ctx.getBean("hello", HelloWorld.class);
		callMethod(hello2);
		
		ctx.close();
	}
	
	public static void callMethod(HelloWorld hello) {
		hello.sayHello();
	}

}

 

Bean 내용을 변경함으로써, 코드를 수정하지 않고도, 동작을 변경할 수 있다는 것을 배워보았습니다. 시스템이 매우 커지게된다면, 클래스를 수정하면, 매우 많은 코드를 수정해야만 하였습니다. 하지만 이런 스프링 프레임워크를 사용한다면, 이러한 과정을 줄일 수 있다는 것을 알게 되었습니다. 스프링프레임워크가 왜 나오게 되었고, 이 구조가 어떻게 동작하는 지에 대해 알 수 있는 좋은 시간이었습니다.

반응형