Spring (22) 썸네일형 리스트형 log4j 로그 메세지 출력 log4j.xml 로그메시지 콘솔 출력 세팅 로그 파일 로컬 경로 저장 방법 Controller 클래스 내 log4j 적용 결과 log4j 실제 애플리케이션에서는 유지관리를 위해 웹 사이트에 접속한 사용자 정보나 각 클래스의 메서드 호출 시각 등 여러가지 정보를 파일로 저장해서 관리한다. 해당 로그 관련 기능을 제공하는것이 log4j이다. log4j 기능 관련 설정은 log4j.xml 파일에서 수행한다. log4j.xml을 이루는 태그 태그 설명 로그의 출력 위치를 결정(파일, 콘솔, DB등)한다. log4j의 XXXAppender로 끝나는 클래스들의 이름을 보면 출력 위치를 알 수 있다. Appender가 어디에 출력할 것 인지 결정 했다면 어떤 형식으로 출력 할 지 출력 레이아웃을 결정 로깅 메시지를 Appender에 전달한다. 개발자가 로그레벨을 이용해 로그 출력 여부를 조정 할 수 있다. logger는 로그 레벨을 가지고 있으며, 로.. 메이븐 프로젝트의 구조와 구성 요소 메이븐은 프로젝트 구조와 내용을 기술하는 선언적 접근 방식의 오픈소스 빌드 툴이다. 메이븐 사용시 프로젝트 종속 라이브러리들과 그 라이브러리에 의존하는 Dependency 자원까지 관리 할 수 있다. 메이븐은 프로젝트 전반의 리소스 관리와 설정 파일 그리고 이와 관련된 표준 디렉터리 구조를 처음부터 일관된 형태로 구성하여 관리한다. 메이븐을 사용하면 컴파일과 동시에 빌드를 수행 할 수 있을 뿐만 아니라 관련된 라이브러리도 일관성 있게 관리 할 수 있어 편리하다. 메이븐 기반 웹 프로젝트 기본 디렉터리 구조 메이븐 프로젝트 구성 요소 구성 요소 설명 pom.xml 프로젝트 정보가 표시되며 스프링에서 사용되는 여러 가지 라이브러리를 설정해 다운로드 할 수 있다. src/main/java 자바 소스파일이 위치.. @Autowired 이용한 빈 주입 방법 XML에서 빈을 설정 한 후 애플리케이션이 실행 될 때 빈을 주입해서 사용 하면 관리 및 사용이 불편해진다. 현재 스프링에서는 @Autowired를 사용 하여 개발자가 만든 클래스들의 빈을 직접 자바코드에서 생성하여 사용한다. - @Autowired 특징- 기존 XML 파일에서 각각의 빈을 DI로 주입했던 기능을 코드에서 애너테이션으로 자동으로 수행 @Autowired를 사용 하면 별도의 setter나 생성자 없이 속성에 빈을 주입 할 수 있다. 스프링에서 제공하는 클래스로 생성되는 빈인 sqlSession 같은 클래스는 XML 파일에서 생성 후 사용 해야 한다. - MemberControllerImpl.java - - MemberDAOImpl.java - - MemberServiceImpl.java - @RequestParam 어노테이션 Spring 프레임워크에서 지원하는 @RequestParam 애너테이션이다. java에서 지원하는 request.getParameter(""); 메서드를 사용 하지 않고 브라우저에서 넘기는 전달값을 받을수있다. ModelAndView 메서드에서 파라미터 인자 내부에서 사용 가능하다. - 사용 예시 public ModelAndView login2(@RequestPara("전달받을 파라미터 명칭") - loginController.java - - @RequestParam required 속성 - 로그인 하는 경우 ID와 비밀번호 같은 정보는 반드시 컨트롤러에 전달 되어야 한다. @RequestParam의 require속성을 이용하면 반드시 전달 해야 하는 필수 매개변수인 경우와 그렇지 않은 경우를 설정 할 .. Spring 애너테이션 Spring 3.0 부터는 DI 같은 자바코드와 관련된 설정은 직접 코드에서 할 수 있게 애너테이션(Annotation) 기능을 제공한다. 스프링 기반 애플리케이션에서는 XML에서 설정하는 방법과 애너테이션 기능을 사용하는 방법 두가지를 혼합해서 사용하고있다. - 스프링 애너테이션 제공 클래스 클래스 기능 DefaultAnnotationHandlerMapping 클래스 레벨에서 @RequestMapping을 처리 AnnotationMethodHandlerAdapter 메서드 레벨에서 @RequestMapping을 처리 - 태그 기능 태그를 사용해 패키지 이름을 지정하면 애플리케이션 실행시 해당 하는 패키지에서 애너테이션으로 지정된 클래스를 빈으로 생성해준다. 애너테이션 기능 @Controller 스프링 .. Spring - 트랜잭션 기능 Spring은 트랜잭션 기능을 마이바티스와 연동하여 사용된다. 트랜잭션 기능은 XML 파일에서 설정하는 방법과, 애너테이션을 이용하는 방법이 있다. 트랜잭션(Transaction)은 여러개의 DML 명령문을 하나의 논리적인 작업 단위로 묶어서 관리하는것으로 All 또는 Nothing 방식으로 작업 단위가 처리된다. SQL명령문들이 모두 정상적으로 처리 되었다면 모든 작업의 결과를 데이터베이스에 영구 반영(Commit) 하지만 그 중 하나라도 잘못된것이 있다면 모두 취소(rollback) 한다. 트랜잭션은 각 단위 기능 수행 시 이와 관련된 데이터베이스 연동 작업을 한꺼번에 묶어서 관리한다는 개념이다. - 스프링 트랜잭션 속성 - 속성 기능 propagation 트랜잭션 전파 규칙 설정 isolation .. Mybatis - HashMap을 이용한 모든 회원 정보 조회 자바 HashMap을 이용해 모든 회원을 조회 하는 기능을 구현한다. 태그의 type속성에는 HashMap이 지정 되어있다. SQL문 실행시 레코드의 컬럼 명칭을 Key로 지정 하며 레코드 값을 Value로 지정 하여 HashMap에 차례대로 저장한다. member.xml MemberServlet MemberDAO 이전 1 2 3 다음