1 분 소요

Spring

toString
(자바와 같은) 객체지향 언어들은 객체에 toString이라는 메소드를 기본적으로 제공한다.
일반적으로 toString은 그 객체를 설명해주는 문자열을 리턴한다.
그리고 객체의 toString을 덮어쓰기(overriding)하면 다른 형식의 문자열을 리턴할 수 있다.
문자열이 기대되는 곳에서 문자열이 아닌 객체를 사용하면 시스템은 암시적으로 toString을 호출한다.

⭐순수 java 콜렉션 생성


public class Program {

	public static void main(String[] args) {
		
		List<Exam> exams = new ArrayList<>();
		exams.add(new NewlecExam(1,1,1,1));
		
		for(Exam e : exams)
			System.out.println(e);
		
	}

}

>>> NewlecExam [kor=1, eng=1, math=1, com=1]

⭐Spring을 이용한 콜렉션 생성과 DI

✨생성자를 이용한 콜렉션 생성

(setting.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"
	xmlns:p="http://www.springframework.org/schema/p"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
	
	<bean id="exam" class="spring.di.entity.NewlecExam" p:kor="10" />
	
	<bean id="exams" class="java.util.ArrayList">
		<constructor-arg>
			<list>
				<bean class="spring.di.entity.NewlecExam" p:kor="20" />	
				<ref bean="exam"/>		
			</list>
		</constructor-arg>
	</bean>
	
</beans>

<bean>를 이용해 exams라는 콜렉션을 생성한다.
콜렉션에 값을 추가하는 add()연산은 <property>로 할 수 없다.
따라서 생성자에 값을 setting 해주는 방식으로 di를 해야한다.
<list>태그 안에 di하고자 하는 객체를 넣을 수 있다.
이때 <bean>을 이용하여 직접 생성할 수 도 있고, <ref>를 이용하여 위에서 만들었던 객체를 가져올 수 도 있다.

(Program.java)


public class Program {

	public static void main(String[] args) {
		
	
		ApplicationContext context 
			= new ClassPathXmlApplicationContext("spring/di/setting.xml");
		
		List<Exam> exams = (List<Exam>) context.getBean("exams");
		
		for(Exam e : exams)
			System.out.println(e);
	}

}
실행결과
NewlecExam [kor=1, eng=1, math=0, com=0]
NewlecExam [kor=10, eng=0, math=0, com=0]

✨ util을 이용한 콜렉션 생성

(setting.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"
	xmlns:p="http://www.springframework.org/schema/p"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd">
	
	<bean id="exam" class="spring.di.entity.NewlecExam" p:kor="10" />
	
	<util:list id="exams" list-class="java.util.ArrayList">
		<bean class="spring.di.entity.NewlecExam" p:kor="1" p:eng="1" />	
		<ref bean="exam"/>		
	</util:list>

</beans>

namespace에서 util을 선택하여 추가
<list>태그 앞에 util을 추가하여 <util:list> 로 바꾸면 처리기가 util로 바뀌며 직접 객체를 만드는 역할을 할 수 있다.
(<list>는 목록을 셋팅하는데 사용하는 태그이며, 직접 객체를 만들지는 못함)
그리고 list-class를 이용하여 사용할 list를 구체화 시켜야 한다.

카테고리:

업데이트:

댓글남기기