본문 바로가기

java6

[Spring] Spring Transaction 설정 DB를 다룰려면 트랜잭션이 매우 중요하다. 개념적으로는 중요성을 이해하고 있지만 실제 업무에서 트랜잭션을 관리해본적이 없다... 그래서 Transaction 설정방법과 propagation에 대해서만 작성함... 우선 context에 transactionManager빈을 추가한다. DataSourceTransactionManager는 Connection의 트랜잭션 API를 이용해서 트랜잭션을 관리해주는 트랜잭션 매니저이고 JDBC API를 이용하여 트랜잭션을 관리하는 데이터 액세스 기술인 JDBC와 Mybatis에 적용가능하다. 1. Annotation을 이용한 트랜잭션 context에 요 한줄을 추가한다. @Transactional public interface MemberService { public.. 2016. 3. 2.
[Spring] Could not write JSON: Object is null HTTP Status 500 - Could not write JSON: Object is null (through reference chain: net.sf.json.JSONObject["rows"]->net.sf.json.JSONArray[0]->net.sf.json.JSONObject["uploadfile"]->net.sf.json.JSONNull["empty"]); nested exception is org.codehaus.jackson.map.JsonMappingException: Object is null (through reference chain: net.sf.json.JSONObject["rows"]->net.sf.json.JSONArray[0]->net.sf.json.JSONObject[.. 2016. 2. 26.
[Spring] Spring Mybatis 설정 1 Spring 프로젝트를 하이버네이트로 하려고 했었는데 자료도 그다지 없고... 의지박약으로 지지부진해서 일단 Mybatis라도 잘하자라는 마음에 노선을 변경...ㅠ Mybatis와 DB 연결방식은 대략 다음과 같다. Database Connection Pool(DBCP) : JDBC를 통하여 DB에 연결할 경우, 매번 드라이버를 로드하고 Connection 객체를 가져와야하는데 매우 비효율적이다. 이를 해소하기 위해 웹 컨테이너가 실행되면서 DB와 연결된 Connection 객체를 미리 Pool에 생성해두고 필요할 때에 가져다쓰고 반환한다. DB의 부하를 줄이고 유동적으로 연결을 관리할 수 있다. SessionFactory : 단일 데이터 저장소, 안정적인 스레드를 위한 목적으로 사용된다. Session.. 2016. 2. 17.
[Spring] Spring 다국어 지원 Spring Validator를 사용하려고 보니 messae.properties 파일을 이용하여 문구를 표시하는 예제가 많았다. ResourceBundleMessageSource 인터페이스를 이용한 것인데, 원래는 주로 다국어 처리를 위해 사용된다. MessageSource만 이용하려다가 LocalResolver도 이용하여 다국어 지원 설정도 추가했다. 1. LocalResolver LocalResolver는 3가지 종류가 있다. - root-context.xml -- AcceptHeaderLocaleResolver은 Spring에서 기본(Default)로 된것으로 굳이 root-context.xml에 추가하지 않아도 작동한다. HTTP 요청 헤더의 Accept-Language를 참고한다. -- Cook.. 2015. 12. 2.
[Java] java.lang.UnsatisfiedLinkError Exception 아..... PDF 라이브러리를 하나 붙이게 됐는데 java.lang.UnsatisfiedLinkError가 났다. 그것도 특정 method에서 이 라이브러리가 jar이 있고 dll이 있는데 jar에 있는 클래스 파일이 dll을 참조하는 형식이었다. 일반 자바프로젝트에선 잘돌아가는데 spring에 올려서 하니까 안됨.. 아무래도 tomcat이 dll을 인식을 못하는 것 같다. 해당 예외가 떴을 때 해결책이라고 나온 것 1. JVM에서 라이브러리를 참조할 수 있도록 path 설정 (참고) 2. tomcat native 설치 (설치방법, 최신버전) 3. %TOMCAT_HOME%\lib 안에 jar과 dll 그리고 꼭 .lib 파일을 같이 넣었는지 확인하자 C를 제대로 안해봤더니 dll이 정확이 뭔지 몰랐다... 2015. 10. 30.
[Java] 콘솔 소켓 채팅 프로그램 서버부분을 공부하고 싶었는데 그나마 적당한 것이 멀티스레드를 사용하는, 파일 전송도 되는 멀티 채팅 프로그램인 것 같아 제작해보았다.밍기적 거리면서 했기 때문에 기간은 상당시간 소요되었고... 예외처리를 잡는다고 다 하긴 했지만 어디서 빵꾸가 났을지는 장담하지 못하겠다. 소스코드는 요기로~ 멀티스레드를 사용하기위해 agent라는 클래스를 사용한 것은 학원 다닐 때 강사님이 했던 방법이다.나름 괜찮은 방법인거 같아서 그대로 차용함. 1. Server와 FileServer가 개별적으로 돌도록 Singleton 패턴을 사용했다. Server 포트는 8080 FileServer는 8081 2. 클라이언트가 연결 대기중인 서버의 소켓에 연결을 시도 한다. 3. 연결된 클라이언트의 소켓 정보를 토대로 SeverAg.. 2015. 10. 19.