숨어있는 Iterator 찾기

다음의 코드 중에 iterator가 숨어있는 곳을 찾아 주세요~

class HiddenIterator {

       private final Set<Integer> set = new HashSet<Integer>();

       public synchronized void add(Integer i) {

             set.add(i);

       }

       public synchronized void remove(Integer i) {

             set.remove(i);

       }

       public void addTenThings() {

             Random r = new Random();

             for (int i = 0; i < 10; i++)

                    add(r.nextInt());

             System.out.println(“DEBUG: added ten elements to “ + set);

       }

}

정답 및 해설은 이번 주 일요일 AJN 정모에서…

Spring 설정파일에서 사용하기

사용자 삽입 이미지Hibernate + Spring 연동할 때 사용하는 sesstionFactory를 등록하는 설정파일 입니다. 이 곳에서는 Persistence 객체에 대한 정보를 XML 형식이든 어노테이션 형식이든 알아야 합니다. 따라서 파란색 부분에 어노테이션이 붙은 클래스들을 추가해 줍니다. 요걸 아래 처럼 바꿨습니다.

사용자 삽입 이미지사용자 삽입 이미지
Spring에서 기본으로 List를 위해 사용하는 클래스는 ArrayList입니다.
참조 : Collection 형태의 프로퍼티 설정의 이면에서 무슨 결정이 일어날까?

LinkedList를 사용하고 싶을 때는 다음과 같이 list-class 속성을 사용하여 LinkedList를 사용할 수 있습니다.

<!– creates a java.util.List instance with values loaded from the supplied ‘sourceList’ –>
<util:list id=”emails”>
    <value>pechorin@hero.org</value>
    <value>raskolnikov@slums.org</value>
    <value>stavrogin@gov.org</value>
    <value>porfiry@gov.org</value>
</util:list>

Spring 설정파일에서 ‘p’ 네임스페이스 사용하기

앞에서 만든 스키마를 사용하면 지난번 Epril에서 봤던 p 네임스페이스를 사용하여 <property> 태그를 대체 할 수 있으며 하나의 bean이 전부 하나 태그로(<bean 뭐뭐뭐뭐~ />) 처리 될 수 있습니다.
사용자 삽입 이미지
기존에 사용하던 스키마와 프로퍼티 설정 방식입니다. 이것을 p를 사용하여 다음과 같이 바꿀 수 있습니다.

사용자 삽입 이미지util 스키마는 사용하지 않기 때문에 삭제 해도 되겠네요. 흐흐..

이전에 비해 불편한 점은 첫번째 그림에서 보이듯이 자동완성 기능을 사용할 수 없다는 것이 단점이라고 생각됩니다.

Eclipse에 Spring XML 기반 Configuration 탬플릿 등록

참조 :
자주 쓰는 구문 템플릿(Templates)으로 등록하기

추가할 탬플릿은 Spring 에서 bean 설정 파일로 사용 할 때 기본적으로 사용하는 구문입니다. 보통은 예전 프로젝트에서 복사하거나 레퍼런스에서 복사해서 사용을 하지만 지난번 Epril 세미나에서 토비님께서 라이브 코딩 하실 때 사용하시는 걸 보고 ‘나도 등록해야겠다.’ 해놓고 이제서야 등록하게 됐습니다. 🙂

Eclipse 를 키고 -> preference -> Web and XML -> XML Files -> XML Templates 에서 new 버튼을 사용하여 등록합니다.

등록할 탬플릿은 두 개

1. 일반 Spring 설정 파일 :: spring(normal)

<?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:util=”http://www.springframework.org/schema/util”
       xmlns:p=”http://www.springframework.org/schema/p”
       xsi:schemaLocation=”
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd”>
    ${cursor}
</beans>

2. Schema based Spring AOP와 Transaction용 :: spinrg(advanced)

<?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:util=”http://www.springframework.org/schema/util”
       xmlns:p=”http://www.springframework.org/schema/p”
       xmlns:aop=”http://www.springframework.org/schema/aop”
       xmlns:tx=”http://www.springframework.org/schema/tx”
       xsi:schemaLocation=”
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd”
default-autowire=”byName”>
   
</beans>

설정 내용을 보시면 아시겠지만 p 와 util name 스페이스를 사용할 수 있으며 byName으로 autowiring을 사용합니다.

s만 입력한 뒤 자동완성 단축키(컨트롤+스페이스)를 클릭하면 다음과 같이 간단하게 사용할 수 있습니다. 이제 더이상 레퍼런스와 다른 프로젝트를 뒤질 필요가 없어졌습니다. 나이수..

사용자 삽입 이미지
사용자 삽입 이미지
자신이 등록한 탬플릿을 xml 형식으로 공유할 수 있습니다. 아래 그림에 보이는 import 버튼을 사용하여 다운받은 xml 파일을 불러 들이면 됩니다.
사용자 삽입 이미지cl180.xmldl157.xml