[SpringIDE] 다중 컨텍스트 XML 관리시 다른 파일의 참조 문제점

 

SpringIDE를 설치한 상태에서 프로젝트를 진행 하다 보면 별 문제도 없는데 자꾸 경고가 뜨곤 한다. 그당시에는 무시를 하였지만 나의 결벽증 개발자 무의식이 나타나 이것을 잡기로 하였다.

그 경우는 바로 다음과 같은 경우이다.

datasource-context.xml

<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
  <property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
  <property name="dataSource" ref="dataSource"/>
</bean>

dao-context.xml

<bean id="userWidgetDao" class="com.twinkr.widget.dao.UserWidgetDataDaoImpl" >
  <property name="sqlMapClient" ref="sqlMapClient" />
</bean>

이경우 dao-context.xml의 두번째 줄에는 다음과 같은 경고가 발생한다.

“Referenced bean ‘sqlMapClient’ not found”

하지만 실행해보면 전혀 문제없음을 알 수 있다. 어차피 xml들은 모두 통합 관리되는건데 어쩌란 말인가?
SpringIDE만 꺼보면 바로 에러가 사라진다. SpringIDE가 문제라고 치부한다는것인데…

Project → Properties → Spring → Bean Support → Config Sets

에 들어가서 묶을 필요가 있는 xml파일들을 한데 묶어 Config Set으로 지정해 주자. 묶인 파일들 사이에는 어떠한 공유도 가능하다는 암묵적인 약속이 체결된다. 물론 SpringIDE맘데로; 그리고 서로 마음껏 끌어다 써도 에러는 발생하지 않는다.

[테터툴즈 플러그인] SyntaxHighlighter 1.2.1 – Google Code Prettify

[code]#!/bin/bash
# Fibonacci numbers
# Writes an infinite series to stdout, one entry per line

function fib() { 
  local a=1
  local b=1
  while true ; do
    echo $a
    local tmp=$a
    a=$(( $a + $b ))
    b=$tmp
  done
}

# output the 10th element of the series and halt
fib | head -10 | tail -1[/code]
Google Code Prettify 라이브러리를 이용해 만든 Syntax Highlighter 입니다.

사용할 코드 하이라이터를 찾던 도중 마땅한게 없어 만들게 되었습니다. 다음과 같은 장점이 있습니다.

1. 용량이 매우 작다.
코드 변환 엔진의 경우 용량이 9KB밖에 하지 않습니다. 트래픽이 많은 블로그를 운영하시는분께 적절한 효과가 있을것입니다.

2. 서버의 부하가 적다.
코드 변환 작업을 서버 사이드에서 하지 않고 클라이언트 사이드에서 합니다. 코드 변환은 자바스크립트를 통해 하게 됩니다. 서버사이드 역시 간단한 태그 치환작업외에는 없습니다.

3. 변환 속도가 매우 빠르다.
Google Code Prettify Example 에서 변환 속도를 테스트 해 볼수 있습니다. 매우 빠른 속도를 자랑하고 있습니다.

4. 언어별 설정이 필요 없다.
기존의 언어를 명시해 주어야 했던 방식과 달리 단순히 [code][/code]태그만 사용하면 알아서 사용한 언어를 파악하여 파싱해 줍니다. 기존의 [code php][/code]와 같이 사용했던 방식보다 훨씬 간단합니다.

5. 다양한 언어를 사용할 수 있다.
기본적으로 Bash, C, Cpp, Java, Javascript, Perl, Python, XML, HTML, HtmlXmp, XHTML, PHP, XSL 를 사용할 수 있으며, 이외에도 모든 코드 및 일반 텍스트까지 할수 있는데까지 임의로 하이라이팅을 하여줍니다.

6. 다양한 커스터마이징 옵션을 제공한다.
index.php 파일을 수정하면 누구든지 자신에게 맞게끔 CSS 및 치환 설정을 바꾸거나 추가하여 사용할 수 있습니다.

7. 웹표준을 지향한다.
최대한 W3C의 표준을 준수하여 모든 브라우저에서 최대한 똑같이 보이도록 노력하였습니다.

1078602747.zip