BE전문가 프로젝트

1. Spring 기본 문법(xml을 이용하여 main에 출력(HelloWorld)) 본문

Spring 코딩

1. Spring 기본 문법(xml을 이용하여 main에 출력(HelloWorld))

원호보고서 2021. 11. 9. 21:56
public class Main {
	public static void main(String[] args) {
		GenericXmlApplicationContext ctx= 
        	new GenericXmlApplicationContext("classpath:applicationcontext.xml");
	}
}​

Applicationcontext를 xml에서 사용하기 때문에  GenericXmlApplicationContext를 사용한다

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>5.3.12</version>
		</dependency>

		
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.22</version>
			<scope>provided</scope>
		</dependency>

lombok을 사용하기위해서는 반드시 maven의 metadata를 가지고 있는 pom.xml에 lombok라이브러리를 가져와 maven install을 한다.

@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor 
@ToString
public class Student {
	private String name;
	private int age;
	private double height;
}

이전과는 다르게 lobok을 이용하여 get, set, ToString메소드를 따로 생성하지 않아도 annotation을 통해 사용이 가능하며 @AllArgsConstructor를 통해 모든 필드를 순서에 따라 파라미터로 받는 메소드를 생성해준다.

 

이전과의 또 다른 차이점은 개발자가 직접 값을 주입해야만 했지만 Spring에서는 Spring이라는 container가 값을 주입해주는 방식을 이용한다. 값을 주입하기위해서는 메타설정파일이 필요하며  방법에는 xml을 이용한 방법, Annotation을 이용하는 방법이 존재한다.

 

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="chulsu" class="com.example.Student" >
		<constructor-arg name="name" value="김철수" />
		<constructor-arg name="age" value="26" />
		<constructor-arg name="height" value="184.2" />
	</bean>
</beans>

메인에서 출력

public class Main {
	public static void main(String[] args) {
		GenericXmlApplicationContext ctx= new GenericXmlApplicationContext("classpath:applicationcontext.xml");
		ctx.getBean("chulsu");
	}
}

SpringContainer가 관리하는 객체를 Bean이라고 하며 getBean을 통해 bean을 가져올 수 있다. 이 때 getBean의 리턴타입은 Object이기 때문에 무엇이던 bean으로 받아 올 수 있고 Object형이기 때문에 student로 강제 형변환을 해준다.

Comments