반응형

open <tag> in XML mapper - mybatipse plugin 사용하기


1. mybatipse plugin 의 사용 이유

스프링으로 controller service serviceImpl dao vo 파일에서 작업 시 컨트롤러에서 서비스로 이동할때 

F2, F3를 이용하거나 ctrl을 눌러 open declaration을 통해  컨트롤러에서 이동할 서비스 위치를 찾아 갑니다.

service에서 serviceImpl도 그렇고 DAO에서 VO도 사용을 합니다. 

serviceImpl 이나 dao에서 선택자(id)에 해당하는 mapper 쿼리를 빠르게 이동할 때 사용할 수 있습니다.

일반적으로는 plugin이 설치 되지 않아 바로 이동이 불가능 합니다. 

이럴 경우 mybatipse plugin (Eclipse plugin adding support for MyBatis SQL Mapper Framework.) 을 사용하면 많은 도움이 된다.


2. 설치 방법

Help -> Eclipse MarketPlace -> mybatipse 검색합니다.

[마켓 검색]


현재 최신 버전은 MyBatipse 1.2.2 버전입니다. 버전은 변경 될 수 있습니다.

프로그램을 Installed 하고 난후 sts나 eclipse를 재기동을 하면 설치가 됩니다. 

설치 방법은 아주 간단합니다. 


3. 사용 방법

설치를 하고 sts나 eclipse가 재기동이 되면 이동할 메소드(dao)에서 ctrl키를 눌러 보면

open <tag> in XML mapper 옵션이 추가 된것을 확인 할 수 있습니다. 



반응형
반응형

log4j에서 e.printStackTrace() 메시지를 log에 남기는 방법


이클립스로 소스코드를 짜다 보면 exception 코드 확인이 필요한 경우가 많습니다. 

간단한 구문이지만 막상 쓸려고 하면 생각이 나지 않는 경우들이 많아서 몇자 남겨 놓습니다. 

log.debug("exception msg" + e.printStackTrace());    ==>  문법오류 

log.debug("exception msg" + e.printStackTrace().toString());    ==>  마지막 에러만 표시됨 


그래서 아래와 같이 try catch를 사용하면 로그로 에러를 추적할수 있습니다. 

------------------------------------------------------------------------------------

try{

.....

}catch (Exception e) {

log.error ("exception msg", e);

//  or

log.debug ("exception msg", e);

...

}

--------------------------------------------------------------------------------------

e.printStackTrace() 구문은 요즘 PMD 에서 Avoid Print Stack Trace 로 삭제 하거나 log로 대체 되는 상황이기 때문에

미리 부터 설정 해두면 좋을것 입니다. 

PMD 에서 기본 대체 구문은 System.out.println(); 으로 잡혀 있지만 log로 남기는 것이 좋습니다. 

소스 코드 내에 println 메소드는 사용하지 않습니다. 


반응형
반응형

이클립스 오픈 리소스(open resource) 검색 제외(search exception) 설정 방법 [target, 이미지 폴더 제외] 

감사합니다. 고맙습니다. 행운을 드립니다. 

이클립스에서 오픈 리소스(open resource) Ctrl + Shift + R 단축키로 검색시 불필요한 파일까지 검색이 됩니다.

이를 막기 위해서 Filter 설정을 할 수 있습니다. 

해당 프로젝트에서 Properties 창을 open 합니다.  아래와 같이 선택을 하고 Apply를 하면 적용이 됩니다. 

이해가 잘 안되시면 아래에 순서 대로 정리하였습니다. 보시고 참고 하세요.


위 그림처럼 예를 들어 target 폴더 제외해 보는 순서를 아래에 적었습니다. 

1. 해당 프로젝트 선택 Properties (Alt + Enter)

2. Resource > Resource Filters

3. Add Filter 선택

4. Exclude all, Folder, All children 선택체크

5. File and Folder Attributes 선택

6. Filter Details

7. Name, matches 선택 후 "target" 입력 (target은 폴더 명입니다.)

8. OK 선택


위와 같이 Filter 작업을 해두면 오픈 리소스에 검색에서 제외 됩니다. 

단 이 설정은 각 프로젝트 단위로 설정 해야 합니다.

반응형
반응형

eclipse TOMCAT JNDI 설정 방법


이전글에서 스프링에서 JNDI를 설정 하는 방법을 보았습니다. 

이번에는 TOMCAT 에서 JNDI를 설정하는 방법입니다. 


톰켓(TOMCAT) 홈 디렉토리에 있는 설정 파일을 찾아 봅니다. 

TOMCAT_HOME : 톰캣이 있는 폴더 (디렉토리)를 말합니다. 

그럼 다음으로 이동을 해봅니다. 


TOMCAT_HOME/conf/server.xml 파일을 찾아 수정 작업을 합니다. 


<GlobalNamingResources> 

....[주석]

....[기존설정내용]

.....

</GlobalNamingResources> 

해당 구문을 찾습니다. 


이 구문 사이에 접근DB 정보를 입력합니다 

입력 방법은 다음과 같습니다. 


<GlobalNamingResources> 

....[주석]

....[기존설정내용]

....[추가 DB 접근 내용1]

....[추가 DB 접근 내용2]

....[추가 DB 접근 내용3]

</GlobalNamingResources> 

 

간단히 표시를 했지만 실제 구문은 다음과 같습니다. 

위 예시는 여러 DB를 사용 했을 때이고 아래 구문은 1개만 추가해 보겠습니다.


[server.xml]

<GlobalNamingResources> 

<!-- Editable user database that can also be used by

         UserDatabaseRealm to authenticate users

    -->

    <Resource name="UserDatabase" auth="Container"

              type="org.apache.catalina.UserDatabase"

              description="User database that can be updated and saved"

              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"

              pathname="conf/tomcat-users.xml" />


    <!-- 추가 DB 접근내용1 -->

    <Resource name="JDNI이름" auth="Container"

              driverClassName="oracle.jdbc.driver.OracleDriver"

              factory="org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory"

              type="javax.sql.DataSource"

              url="jdbc:oracle:thin:@서버아이피:포트:SID이름"

              username="사용자아이디"

              password="패스워드" />


</GlobalNamingResources>


위와 같이 수정을 하였다면 다음으로 context.xml 파일을 수정 합니다.

추가된 JDNI 이름을 사용 할수 있도록 링크작업을 한다고 생각 하면 됩니다. 


[context.xml]

<context>

.. 

<ResourceLink global="JNDI이름" name="JNDI이름" type="javax.sql.DataSource"/>

..

</context>


위와 같이 <context> </context> 구문사이에 <ResourceLink> 내용을 추가 하면 됩니다. 

이와 같이 설저을 해두면 추가 프로젝트 작업을 진행할때 DB 접근 정보를 몰라도

JNDI이름만 호출해서 바로 DB 접근이 가능합니다. 


간단히 JDNI TOMCAT 설정 방법을 정리 봤습니다. 



반응형
반응형

이클립스 스프링 JNDI 설정 방법


프로젝트를 스프링으로 구성 했을때 JNDI로 DB를 접근해야 하는 경우가 있습니다. 

보통 구축이나 운영 프로젝트를 진행 할때 많이들 사용하게 됩니다.

여러 프로젝트에서 하나의 datasource를 공유해서 사용할때 이용됩니다.

마지막으로 load balancing 이 좋다고 하는게 사용자는 체감을 할수는 없을거라 생각 됩니다.


우선 JNDI 설정은 application(웹사이트) 내에 DB 정보를 설정 하여 접근 하는 방식이 아니고 

WAS(톰캣,제우스,웹로직 등)에서 미리 설정 된 [연결정보name]을 호출 하여 접근 하는 방식입니다.


우선 스프링 구성에서 application-config.xml 파일을 열어 봅니다. 

또는 context-datasource.xml 등의 파일 안에 설정이 있습니다.


가장 간단히 찾아 볼수 있는 방법으로는 프로젝트에서 datasource와 jndi로 검색을 해보면 xml 파일에서 설정되어 있는 부분을 찾을 수 있습니다.


일반적으로 다음과 같이 선언 되어 있습니다.

오라클 DB 기준입니다.  


[jdbc 방식]

<bean id="datasource" class="org.apche.commons.dbcp.BasicDataSource">

  <property name="driverClassName" value="oracle.jdbc.OrcleDriver" />

  <property name="url" value="jdbc:oracle:thin:@아이피:포트:SID" />

  <property name="username" value="접속아이디" />

  <property name="password" value="패스워드" />

</bean>


이것을 JNDI로 변경하면 아주 간단하게 바뀝니다. 


[JNDI 방식]

<bean id="datasource" class="org.springframework.jndi.JndiObjectFactoryBean">

  <property name="jndiName" value="JDNI선언이름" />

  <property name="resourceRef" value="true" />

</bean>


연결 정보가 미리 WAS 서버에서 선어 되어 있기 때문에 이름만 호출 해서 사용을 하면 됩니다. 


TOMCAT에서 JDNI로 DB 연결 정보를 설정 하는 방법 다음글로 올리겠습니다. 

 

반응형
반응형

이클립스(Eclipse) 실행 시 Build workspace (빌드) 느릴때(멈춤) 해결 방법 - vailidation 

이클립스나(Eclipse), 스프링(STS), 전자정부프레임웍(eGovFrame)를 사용하다 보면 수시로 "Building workspace" 절차가 진행 됩니다.

이클립스 하단 상태표시 중에 한참을 표시되면서 진행률 변경이 없을때 그 답답함은 게임을 접속할때 로딩 99%에서 멈춰 응답이 없을때,

그 느낌을 느껴본 사람은 알 것이다. 


이 답답함을 해소 할 수 있는 방법이 있습니다.

이클립스 vailidation 설정을 변경해 "building workspace" 상태를 빨리 벗어나는 방법이 있습니다.

이클립스 설정을 그대로 사용할 경우 vailidation 설정을 그대로 사용하고 있는 경우가 많은데 중요하지 vailidation 설정을 해제하는 방법입니다. 

예로 들면 자바스크립트 검증은 엉뚱한 경고나 오류가 자주 뜨는 경우가 많아 자바스크립트 검증를 꺼두면 좋습니다. 


Window > Preference > Vailidation 을 확인해 본다.




vailidator 목록에서 체크를 해제 하면 검증을 하지 않게 됩니다. 

아니면 Suspend all vailidators 부분을 체크 하면 vailidator 부분이 전체 비활성화 됩니다.

여기에 하나 더 체크설정을 해제 해야 하는 곳이 있습니다.  


프로젝트(마우스우클릭) > Properties > Builders 이동합니다.



그림을 보면 JavaScript Vailidator 부분이 보입니다. 

이 부분을 해제 하면 building (빌드)시간도 단축이 되고 여러모로 시간 이점을 얻을수 있습니다.

반응형
반응형

이클립스(Eclipse) 콘솔(Console) 로그(Log) 출력창 라인수(Line) 늘리는 방법

To increase the number of lines in the Eclipse consolelog output window


Window > Preference > Run/Debug > Console  select 합니다. 

 1. Limit console output 설정 해제 (uncheck)

또는 

2. Console buffer size (characters) 값(value) 을 기존값 80000 에서 적정값으로 크게 올려 주면 됩니다. (Enter larger than 80000)

참고로 아래 그림을 확인하세요



반응형
반응형

이클립스(eclipse) 불필요한 import 정리 단축키


비슷한 코드를 Ctrl+v 작업을 진행 하다 보면 import 가 따라 붙는데 
코드를 수정 하고 나면 불필요한 import가 남는경우가 생깁니다. 

이런때 필요한 단축키가 있다. 

[Ctrl+Shift+O]

이 단축키를 이용해서 소스를 정리 하시면 됩니다. 

java 소스에서 노란 물결로 표시 되는 import 구문들이 조용히 사라집니다.







반응형
반응형

이클립스 SVN 제외 폴더 패턴 등록 (Eclipse SVN) synchronize 

1. 상단메뉴(Top menu) >> window >> Preferences 선택

2. Team >> Ignored Resources >> Add Pattern 선택

3. Add Ignore Pattern Window : */target/* 입력 OK

4. */target/* 입력 확인 후 Apply >> OK

전프로젝트 추가 설정

1. Window >> Preferences -> Team >> Ignored Resource >> Add Pattern

2. 제외 파일 및 폴더 패턴 입력 >> Apply >> OK

파일 및 폴더 패턴 예 : */target/*


디렉토리 및 파일별 설정

1. 해당 프로젝트 Explorer >> 파일및 디렉토리 에서 마우스 우클릭 >> Team >> Add to SVN:ignore

2. Add to SVN : ignore 가 비활성 이거나 없는 경우는 해당  파일 및 디렉토기가 소스관리 를 받고 있는 상황 이다.

3. 소스관리 받지 않은 상태로 만든후 다시 활성화 시키면 수정 가능 하다. 




반응형

+ Recent posts