본문 바로가기

Spring 3.0 - 4.3

Log4j 설정법 (log4jdbc-log4j2 라이브러리 이용) MyBatis는 내부적으로 JDBC의 PreparedStatement를 이용해서 SQL을 처리합니다. 따라서 SQL에 전달되는 파라미터는 JDBC에서와 같이 '?' 로 치환되어서 처리됩니다. 따라서 SQL 로그를 제대로 보기 위해서는 log4jdbc-log4j2 라이브러리를 사용해야 합니다. 1. mvnrepository.com/artifact/org.bgee.log4jdbc-log4j2/log4jdbc-log4j2-jdbc4.1/1.16 Maven Repository: org.bgee.log4jdbc-log4j2 » log4jdbc-log4j2-jdbc4.1 » 1.16 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 // https://mvnreposi.. 더보기
[Spring 에러] The fully qualified name of the bean's class 에러 내용 Attribute : class The fully qualified name of the bean's class, except if it serves only as a parent definition for child bean definitions. 해결 방법 1. Build Path에서 ojdbc6.jar 를 import 해준다. 2. Project - Clean 더보기
Spring Web MVC를 이용하여 웹 서버 구축하기 - (1) 개념 여기서는 웹 서버가 구동되기까지의 과정을 살펴볼 것이다. 프로젝트 구동 시 관여하는 XML은 다음으로 크게 3가지이다. web.xml - Tomcat 구동과 관련된 설정 root-context.xml - Spring과 관련된 설정 servlet-context.xml - Spring과 관련된 설정 프로젝트의 구동은 web.xml에서 시작한다. web.xml의 상단에는 가장 먼저 구동되는 Context Listener가 등록되어 있다. 에는 root-context.xml 의 경로가 설정되어 있고, 에는 스프링의 mvc의 ContextLoaderListener가 등록되어 있는 것을 볼 수 있다. ContextLoaderListner는 해당 웹 어플리케이션 구동 시 같이 동작하므로 해당 프로젝트를 실행하면 다음.. 더보기
javac: invalid target release - 메이븐 프로젝트 컴파일 시 뜨는 에러 다음과 같이 메이븐 프로젝트를 컴파일하려 할 때, 버전 문제로 Build Failed가 뜨는 경우 중 하나입니다. * full debug logging을 보려면 끝에 -e를 붙임 javac: invalid target release: 11 11 버전의 소스파일은 현재 서버에서 컴파일 할 수 없다는 것입니다. pom.xml에는 소스 컴파일 세팅이 jdk11버전으로 맞춰져 있고, 리눅스 서버의 자바 버전은 jdk1.8로 맞춰진 상태였습니다. 즉, 11버전의 소스파일을 더 낮은 버전인 1.8로 컴파일 하려니까 컴파일 에러가 뜨는겁니다. 리눅스 서버에 설정되어 있는 Java 버전 - jdk1.8로 설정되어 있는 걸 볼 수 있습니다. 해결방법은 소스파일의 세팅부분(pom.xml)에서 컴파일 버전을 낮추거나, 리눅.. 더보기
[aws] EC2 서버에 접속하기 (맥OS) Mac & Linux 는 터미널을 이용해 접속합니다. 먼저 ssh key를 생성하기 전에 이미 생성된 key가 있는지 확인해봅니다. ~/.ssh/id_rsa.pub 파일이 없다면, 아직 한 번도 ssh key를 생성하지 않은 상태입니다 ssh key pair를 만들어보겠습니다. Mac은 OpenSSH를 포함하고 있어 아래와 같이 ssh-keygen 명령으로 생성이 가능합니다. 1) 어느 경로에 키를 저장할지 선택 (기본경로는 /Users/본인컴퓨터이름/.ssh/id_rsa) -> 엔터로 기본경로에 저장해줍니다. 2) 비밀번호는 무엇으로 할지 -> 엔터 쳐서 그냥 넘어갑니다. 그럼 키가 만들어지고 기본 위치(/Users/본인컴퓨터이름/.ssh/id_rsa)에 파일이 생성됩니다. 이제 다시 id_rsa.pu.. 더보기
[Spring] @Autowired 한 class가 null로 나오는 문제 해결법 (Spring 의존성 주입 문제) 우리는 보통 bean에 의존성 주입을 하고 싶을 때, @Autowired 를 사용하는데요. @Autowired한 class 가 null 이 나왔다는 건, 해당 클래스에 의존성 주입이 제대로 이루어지지 않았다는 것입니다. Spring에서 의존관계 주입방법은 크게 4가지가 있는데요. 1. 생성자 주입 2. setter 주입 3. 필드 주입 4. 일반 메서드 주입 이 중, 저는 필드 주입 방법으로 의존성 주입을 해줬는데요. (참고: Spring에서 권장하는 방식은 생성자 주입 방식 입니다) 저의 경우는, @Autowired도 잘 붙여줬고 @Service도 잘 붙여줘서 문제가 없다고 생각했는데요. (현재 상태가 ItunesCrawlingService 클래스에 SingerDAO를 주입시켜 주어서 이 둘의 의존관계.. 더보기
Quartz 라이브러리 이용하기 (특정 시간에 특정 프로그램을 실행하고 싶을 때) Quartz 라이브러리는 일반적으로 스케줄러를 구성하기 위해 사용합니다. 서버를 운영하기 위해서는 간혹 매일, 매주, 매월 주기적으로 특정한 프로그램을 실행 할 필요가 있습니다. 이 작업은 운영체제의 기능을 이용해서 작업할 수도 있지만, 스프링과 Quartz 라이브러리를 이용하면 간단하게 처리할 수 있습니다. ※ Spring Batch의 경우 많은 양의 데이터를 주기적으로 읽고 쓰는 작업에는 유용하지만 설정이 더 복잡합니다. 사용 방법 1. pom.xml 에 quartz 관련 라이브러리를 추가해줍니다. org.quartz-scheduler quartz 2.3.0 org.quartz-scheduler quartz-jobs 2.3.0 2. Quartz에 대한 설정을 하기 위해 XML과 어노테이션을 이용합니다.. 더보기
[iBatis/myBatis] insert/update 쿼리 실행 후 결과 가져오기 xml단 SELECT NVL(MAX(SEQ),0)+1 AS SEQ FROM TEST_TBL WHERE YY = #YY# INSERT INTO TEST_TBL ... VALUES ... 다음과 같이 selectKey 구문을 이용하면, INSERT 후에 생긴 row의 특정 컬럼 데이터를 가져올 수 있다. java 단 int result = (int)dao.insert("testXml.insertData", map); 더보기