날아라쩡글이의 블로그입니다.

Project Object Model.xml설정, 로그설정 본문

중앙 HTA (2106기) story/spring java framwork story

Project Object Model.xml설정, 로그설정

날아라쩡글이 2021. 12. 31. 13:46
728x90
반응형
  •  <groupId>com.sample</groupId> = 회사 도메인
  • <artifactId>spring-mybatis</artifactId> = 프로젝트명
  •  <version>0.0.1-SNAPSHOT</version> = 버젼의 넘버링
  •  <packaging>war</packaging>
    • 톰켓서버의 배포 
      • Jar
        • 자바의 application을 압축한 폴더 
      • War
        • web package(web)의 package를 압축한 폴더
      • Ear
        • 자바를 EJB서버를 이용해서 압축한 폴더
      • 우리는 web을 만들기 때문에 war로 설정한다. 
  •  <properties> = 앞으로 작성할 때 사용할 방식
    • encoding=<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    • 자바의 버젼=<maven.compiler.source>11</maven.compiler.source>
    • 스프링의 버젼=  <spring.version>5.3.14</spring.version>
  • 그럼 앞으로 스프링 버젼이 동일하다면   <version>${spring.version}</version>사용할 수 있다. 
  •   <artifactId>spring-context</artifactId> 와  <artifactId>spring-webmvc</artifactId>의 차이 
    • spring-context 
      • web용 springContainer의 jar파일이다. 
      • 웹서버에서 container만 제공해준다. 
    • spring-webmvc
      • model2기반의 controller, model, view를 나눠서 개발할 수 있게 지원한다. 
      • 컨트롤러를 생성한다. 
  •    <artifactId>mybatis</artifactId>
    • SQLSessionFactory를 생성하게 한다. 
  •  <artifactId>mybatis-spring</artifactId>
    • mapperScanerConfig객체가 생성하게 만든다. 
    • Dao의 interface 구현객체를 bean으로 등록되게 만들어주는 객체이다. 
  • 프로그램의 실행로그를 출력해주는 것 log4j로 apachi꺼가 많은 사용을하고, 해당 파일을 사용하기 위해서 
      <groupId>org.springframework</groupId>
             <artifactId>spring-context</artifactId>
             <version>${spring.version}</version>
             <exclusions>
                <exclusion>
                   <groupId>commons-logging</groupId>
                   <artifactId>commons-logging</artifactId>
                </exclusion>
             </exclusions>
          </dependency>
  • spring-context을 설정해주고, commons- logging을 설정해주어야한다. 
    spring-framwork의 경우 commons-로그를 자동으로 추가하고 사용하려고 하는데 그걸 사용하지 않고, 
    apachi의 log4j를 사용하겠다는 선언이다. 
  • log4j2.xml설정방법
  •  
    • <Appenders>
      • 출력방향을 지정하는 곳 
    • <Console name="stdout" target="SYSTEM_OUT">
      • 콘솔, DB, File로 출력이 되는 곳을 정할 수 있다. 
    • <PatternLayout pattern="%d{HH:mm:ss} %5p [%c{1.}] %m%n" />
      • 출력의 패턴을 정할 수 있다
    • <Loggers>
      • 로그의 방향을 지정할 수 있다. 
    • <Logger name="org.springframework" level="debug" />
      • 특정클래스를 지정할 수 있다. 
    • <Root level="error">
      <AppenderRef ref="stdout" />
      </Root>
      • 기본 레벨은 error레벨이다. 
    • 로그는 프로그램 중간,중간에 라이브러리가 들어가 있다. 
      출력을 지정하게 되면 로그로 출력이 될 수 있고, 
      그걸보고 개발자들과 운용환경에서 확인이 가능하다. 
    • log레벨
      • debug
        • 프로그램 실행과 관련된 상세한 정보를 출력한다. 
        • 개발할 때 level을 많이 설정해둔다. 
      • info
        • 프로그램 실행 정보
      • warn
        • 프로그램실행에 영향을 끼치지 않는 오류정보
      • error
        • 프로그램 실행 중 발생한 오류정보 
          • 운용환경에서는 많이 설정한다. 
      • fatal
        • 프로그램 실행중 발생한 치명적인 오류 정보 
      • 로그레벨은 설정해둠으로 표현하는 게 삼각형이다. 
      • info로 설정하면 debug가 출력안되고, warn으로 설정하면 debug와 info가 출력되지 않는다. 
  • books.xml처럼 Dao의 객체를 만드는 SQL의 구문이 작성되어 있는 곳은 꼭 mapper의 namespace속성을 추가하여 dao 인터페이스가 있는 곳의 링크를 걸어줘야한다. 

form객체로 가져올 경우 Date는 
@DateTimeFormat(pattern="yyyy-MM-dd") 설정해야한다. 외국과 한국에서 date설정이 다른것처럼 설정을 정해줘야한다.  
proxy객체 

  • BookDao의 인터페이스를 구현한 객체는  <mybatis-spring:scan base-package="com.sample.dao" factory-ref="sqlSessionFactory"/>의 mapperScannerConfig라는 객체 내부에 존재하고 있다. 
    그래서 logging으로 console에 나오는 것을 확인하면 mapper라고 작성이 되어있는데,
    구현과 상속을 위해서 객체를 생성하고 mapper내부에 있는 객체를 프록시 객체, proxy객체라고 한다. 
반응형
Comments