그럼 앞으로 스프링 버젼이 동일하다면 <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를 사용하겠다는 선언이다.
로그는 프로그램 중간,중간에 라이브러리가 들어가 있다. 출력을 지정하게 되면 로그로 출력이 될 수 있고, 그걸보고 개발자들과 운용환경에서 확인이 가능하다.
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객체라고 한다.