본문 바로가기

Java/spring

Spring에서 Json으로의 입출력 정리 이번에 프로젝트를 진행하면서 Spring에서 사용하는 Jackson Json 라이브러리를 조금 디테일하게 이용해야 하는 상황이 생겨서 이에 대한 내용을 정리하고자 한다.일단 Json과 관련되어 작업의 내용은.. Java 객체에 저장된 값을 Json 형태로 변환하여 Request Body에 실어서 보내야 한다(이때 String 형 변수가 아닌 다른 형(ex : int 형)을 String 형태(쌍따옴표로 감싼 형태 : "123")로 보내야 한다.Java 객체에 저장된 값을 Json 형태로 변환하여 보낼때 선별적으로 보낼수 있어야 한다. (무슨뜻이냐면 Json으로 보낼때 모든 필드를 다 사용하는것이 아니라 특정 필드는 제외해서 사용할 수 있어야...) Request의 Body로 온 Json 내용을 Java 객.. 더보기
@Transactional 사용시 rollback이 안될 경우 Spring에서 트랜잭션 처리 시 @Transactional 어노테이션을 사용하면 rollback이 안된다. 이와 같은 오류로 어려움을 겪고 있다면 아래 해결 방법들을 이용해 보도록하자. 1. mysql 데이터베이스를 사용할경우 테이블 타입 확인 mysql은 테이블타입이 InnoDB일 때만 트랜잭션이 동작한다고 한다. 테이블 타입을 확인해보고 InnoDB로 변경해준다. 2. 인터페이스 코드 유무 확인 트랜잭션을 이용할 클래스들이 인터페이스를 사용하는지 확인해봐야 한다. @Transactional 어노테이션 같은 경우 Spring AOP를 이용하게 되는데 이 AOP는 기본적으로 Dynamic Proxy를 이용한다. Dynamic Proxy는 인터페이스 기반으로 동작하기 때문에 인터페이스가 없을경우 트랜잭션.. 더보기
Spring Framework와 [IOC / DL / DI] 정의 1. Spring Framework란? 부품을 조립해주는 라이브러리(lib)로 라이브러리가 모이면 framework(재사용하는 틀)이 된다.요구명세서(목록)만 주면 객체도 생성하고 조립까지 해준다.생성 순서는 Big -> Small 의 형식이 아닌 Small -> Big 의 순서대로 간다. (ex) 로봇을 생성할 때 손가락 -> 손 -> 팔뚝 -> 팔 -> 몸통 -> 전체의 형식 위와 같이 Core 부분의 IoC Container가 Spring의 핵심이고, IoC에는 DI가 있으며 이것을 좀더 세부적으로 나눈다면 Setter Injection, Constructor Injection, Method Injection 등으로 나눌 수 있다. 2. Spring Framework의 장점 - 경량 컨테이너 전체 .. 더보기
@Configuration과 @Bean을 이용한 Spring Framework 환경 설정의 Java 코드화 흔히들 Spring Framework(이하 Spring)를 사용하면서 가장 많이 사용하는 환경설정 방법이 아마 XML일것으로 생각한다. 그나마 2.5때는 Spring에서 사용되는 모든 Bean을 전부 XML에 등록하는 식으로 개발 가이드가 되었기 때문에 Spring에서 사용하는 모든 Bean과 Bean들간의 연결 설정을 XML에 기록해야만 했다(참고로 필자가 Spring Framework를 실제 프로젝트에서 적용한 건 Spring Framework 3.0.X버전대부터 이지만 필자의 지인의 경우는 Spring Framework 2.5.X 대 버전으로 프로젝트를 진행했었던 지라 그 경험에 비추어 적어놓는다). 그러나 Spring 3.0.X대부터는 어노테이션을 이용한 Bean의 등록 및 Bean들 간의 연결 .. 더보기