1월, 2014의 게시물 표시

spring jotm maven 설정

spring 3.2.1.RELEASE 버전에서 jotm을 사용할 때 maven 설정 정리된 자료가 없어서 이곳 저곳 구글링 하다가 Not found class가 나면 추가하여 구성한 dependency 이므로 =_=;; 다소 찝찝한 감이 있지만.. 뭐... 수정할 곳이 있으면 =_=;; 알려주세요 제발 ㅠㅠ           <   dependency >                       <   groupId >   jotm   </ groupId   >                 <   artifactId >   jotm   </ artifactId   >                 <   version >   ${ jotm -version}   </   version >          </   dependency >          <   dependency >                  <   groupId >   jencks   </ groupId   >   ...

spring p-namespace

jotm으로 transaction을 작업하고 있는데. context.xml 중 bean 설정 부분에 <bean ~~~ p:userTransaction-ref="jotm" /> 라는 설정이 있는데 =_=; p: 누르고 자동 완성 하니 =_=? 안뜨네 일단 p 라는 네임스페이스 설정  xmlns:p   = "http://www.springframework.org/schema/p" 스키마 로케션은 뭘로 잡아야 하나...  url로 접근하니 "Not Found" ... 뭐지..p는? 찾아보니. 참고 :  http://blog.outsider.ne.kr/754 p-namespace는 프로퍼티 값과 협력 객체를 나타내기 위해 중첩된 <property/> 요소 대신 bean 요소의 속성을 사용 가능케 한다. 스프링 2.0부터는 XML 스키마 정의에 기반해서 네임스페이스를 사용하는 확장가능한 설정형식을 지원한다. 이번 챕터에서 얘기할 beans 설정 형식은 XML 스키나 문서에 정의한다. 하지만 p-namespace는 XSD 파일에 정의하지 않고 스프링 코어에만 존재한다. * 참고로 c 네임스페이스는 생성자 파라미터 설정 할때 사용

spring 의존관계

<test-context.xml> < bean id = "testA" class = "springTest.TestA" depends-on = "testB" init-method = "init" destroy-method = "destroy" /> < bean id = "testB" class = "springTest.TestB" init-method = "init" destroy-method = "destroy" > < property name = "testA" ref = "testA" /> </ bean > depends-on 이 뭐지? 레퍼런스를 봐야지? ——— 3.3.4.  depends-on  사용하기 대부분의 상황을 위해 bean이 다른 것들의 의존성이라는 사실은 하나의 bean이 다른것의 프라퍼티처럼 셋팅한다는 사실에 의해 간단하게 표현된다. 이것은 XML-기반의 설정 메타데이터내  <ref/> 요소를 가지고 수행한다. 이것의 다양한 종류에서 때때로 컨테이너를 인식하는 bean은 간단하게 주어진 의존성(문자열 값이나 문자열 값과 같은것을 평가하는  <idref/> 요소의 대안을 사용하여)의 id이다. 첫번째 bean은 이것의 의존성을 위해 컨테이너에 프로그램마다 다른 방식으로 요청한다. 어느 경우에나 의존성은 의존적인 bean이전에 초기화된다. 다소 덜 직접적인(예를 들면, 데이터베이스 드라이버 등록과 같은 클래스내 정적인 초기자가 트리거 될 필요가 있을때) bean들 사이의 의존성이 있는 비교적 드물게 발생하는 상황을 위해  'depends-on' 속성은 이 초기화된 요소를 사용하는 bean이전에 초기화되기 ...

spring bean @annotation 처리

<context:annotation-config /> 등록된 Bean 내에 annotation 처리 BeanPostProcessor 등록 RequiredAnnotationBeanPostProcessor : @Required 처리 AutowiredAnnotationBeanPostProcessor : @Autowired 처리 CommonAnnotationBeanPostProcessor : @Resource, @PostConstruct, @PreDestroy 처리 ConfigurationCalssPostProcessor : @Configuation 처리 <context:componet-scan />  특정 패키지 스캔하여 stereo type의 annotation bean 등록  + <context:annotation-config />

Java 예약어

이미지
- volatile 행위의 타겟에 대한 동기화 멀티쓰레드 환경에서 완전히 공유 하겠다. 하나의 변수를 멀티 쓰레드에서 사용하게 되면 각 쓰레드마다 해당 변수 값을 저장하는 작업 복사본을 하나 씩 가지고 있어서 쓰레드는 원본에서 값을 접근하기 위해 자신의 작업 복사본에 값을 저장하고 어떠한 연산을 거친뒤에 다시 원본 값을 돌려버리는 방식을 취한다. 이때 동기화 이슈가 있음. volatile을 사용하면 쓰레드가 특정 변수를 접근하려는 연산이 발생하면 무조건 다시 주 원본의 값을 가져오게 하는 것이다. * static vs volatile 참고 :  http://malalanayake.wordpress.com/2013/09/12/volatile-vs-static-in-java/ staitc  : Thread 1 and Thread 2 can make their own local copy of the same object(including static variables) in their respective cache volaile : Thread 1 and Thread 2 can make their own local cache of the Object except the variable which is declared as a volatile. =_=;; 아..여태 까지 엉터리로 코딩했구나. - synchronized 행위에 대한 동기화 - transient 객체 직렬화시에 멤버 변수의 전송을 막음   

Hsqldb Server 재기동 시 오류

- webapp 초기 시작 시 문제가 없으나 tomcat manager 에서 Stop -> Start 시 오류 발생 <<<오류 메세지>> java.sql.SQLException: Database lock acquisition failure: lockFile: org.hsqldb.persist.LockFile@f3811c1a[file =C:\myhsql\db\sjdb.lck, exists=true, locked=false, valid=false, ] method: checkHeartbeat read: 2010-10-19 12:46:09 heartbeat - read: -6750 ms. 문제는 Lock 파일이였음. Lock 파일의 기능에 대한 설명은 아직 못 찾음 <<Lock 파일의 생성 규칙>> a lock file is created for each file database that is opened for read and write. Lock 파일이 잘못된건 hsqlServer를 잘못 종료 한 것 인가? 라고 판단 종료는 spring bean으로 등록 한 후 destroy-method로 지정  <<해당 코드>> server.stop(); server.shutdown(); server = null; server는 제대로 종료 하였지만... 오류가 발생? 여기서 부터는 =_=; 감으로 작업 lock 파일을 hsql server 종료 시 마다 지우는 건 =_=; 하수 같은 플레이 같고... ... =_=; 이렇게 해볼까 ? 하고 sql문을 shutdown 명령어 수행 후 서버 셧 다운 =_=; 어...된다.. 그래서 수정된 코드 jdbcTemplate.execute("shutdown"); try {      ((BasicDataSour...

Spring profile

profile 활성화 방법  - context의 environment 오브젝트를 가져와 setActiveProfiles() -> context.refresh 참고 :  http://stove99.tistory.com/152 rootContext.getEnvironment().setActiveProfiles(toChangeProfile); rootContext.refresh();  - 시스템 프로퍼티 export spring.profiles.active=dev  - 환경변수 설정  - JVM 파라미터 -Dspring.profiles.active=dev  - web.xml      root-context에 적용 <context-param>      <param-name>spring.profiles.active</param-name>      <param-value>dev</param-value>  </context-param> survlet-context에 적용 <init-param>      <param-name>spring.profiles.active</param-name>      <param-value>dev</param-value>  </init-param> -jndi  -application context initializer or web application initializer + maven profile, filtering 참고 :  http://arawn.github.i...