[Spring - (3) ] "Spring framework"의 xml파일 정리
- pom.xml
- *Mapper.xml
- mybatis-config.xml
- root-context.xml
- log4j.xml
- web.xml
1. pom.xml
JSON데이터 사용
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.8</version>
</dependency>
Color Scripter
|
MyBatis 사용 - root-context.xml에도 선언 해야 함
1
2
3
4
5
6
|
<dependency>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
r
|
UTF-8 처리 필터
UTF-8을 사용하는 경우는 스프링에서 제공하는 필터를 등록해 주는 것이 좋다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
<filter>
<filter-name>encoding</filter-name>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
r
|
AOP 설정
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
<!-- spring-aop .. spring-tx 추가 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<!-- AspectJ -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjtools</artifactId>
<version>${org.aspectj-version}</version>
</dependency>
Color Scripter
|
2. *Mapper.xml
<![ CDATA[ ] ]>
sql 구문안에 비교 연산자가 들어갈 경우(특수문자) 문자열로 인식하게 만들어주는 명령어.
<incldue refid="">
- refid(reference id)는 반복되는 쿼리를 미리 작성해 놓고 재활용 할 수 있게 해준다.
3. mybatis-config.xml
들어가기
마이바티스 설정 파일이다. 플러그인 셋팅, 카멜표기맵핑등의 옵션, sql 쿼리문이 있는 맵퍼 파일 위치 등을 설정 할 수 있다.
XML Mapper를 이용하는데 있어서 매번 parameterType이나 resultType을 패키지까지 포함된 클래스명을 작성하는 일이 번거롭다면 MyBatis의 설정 파일인 mybatis-config.xml을 사용하여 <typeAliases>를 작성해 줄 수 있습니다.
<typeAliases>는 하위 요소로 <package>와 <typeAlias> 요소를 가질 수 있습니다. 이 요소들을 이용하면 매번 parameterType이나 resultType에 사용하는 클래스의 이름을 'org.zerock.domain'은 생략한 채로 표현하는 것이 가능합니다.
mybatis-config.xml
1
2
3
4
5
6
7
8
9
10
|
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//En"
<configuration>
<typeAliases>
</typeAliases>
</configuration>
|
Mybatis Mapper 인터페이스
참고 : https://bigstupid.tistory.com/23
4. root-context.xml
기본
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
<!--기본-->
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:jdbc="http://www.springframework.org/schema/jdbc"
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd
http://mybatis.org/schema/mybatis-spring http://mybatis.org/schema/mybatis-spring-1.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
|
MyBatis 사용 - 데이터베이스 연결
1
2
3
4
5
6
7
8
|
<!-- Root Context: defines shared resources visible to all other web components -->
<!-- 데이타베이스 연결 -->
<property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC&characterEncoding=utf-8"></property>
<property name="username" value="root"></property>
<property name="password" value="1111"></property>
</bean>
Scripter
|
- & 인식을 못할 경우 : & 로 입력 해야 한다.
MyBatis 사용 - sql 실제 구문 연동
1
2
3
|
<constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory"></constructor-arg>
</bean>
Color Scripter
|
MyBatis 사용 - mybatis생성 연결( XML Mapper 인식하기 위한 작업 )
1
2
3
4
5
|
<property name="dataSource" ref="dataSource"></property>
</bean>
Scripter
|
트랜젝션 처리
1
2
3
4
|
<bean id="transactionManager"
<property name="dataSource" ref="dataSource"></property>
</bean>
t
|
AOP 설정
1
|
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
|
5. log4j.xml
들어가기
Log4j는 자바기반의 로깅 유틸리티로, Apache에서 만든 오픈소스 라이브러리다.
System.out.println()으로 출력을 하는데, 이런것들이 모두 로그의 한 종류라고 생각할 수 있다. System.out.println()으로 출력하면 되는데 왜 귀찮게 다른걸 사용하냐는 의문이 들 수 있다. 하지만 syso( System.out.println() )는 잘 돌아가는 소스에서 쓸모없이 리소스가 낭비되는 현상이 발생한다.
구조
요소 | 설명 |
Logger | 출력할 메시지를 Appender에 전달한다. |
Appender | 전달된 로그를 어디에 출력할 지 결정한다. (콘솔 출력, 파일 기록, DB 저장 등) |
Layout | 로그를 어떤 형식으로 출력할 지 결정한다. |
화면
검은색 글씨들이 log4j.xml에 형식에 따라 생성된 로그들이다.
6. web.xml
RestController 사용 시 - HiddenMothod 활용
1
2
3
4
5
6
7
8
9
|
<filter>
<filter-name>hiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>hiddenHttpMethodFilter</filter-name>
<url-pattern>/</url-pattern>
</filter-mapping>
Color Scripter
|
- 브라우저에 따라서 PUT,PATHC,DELETE 방식을 지원하지 않는 경우가 발생할 수 있다. 많은 브라우저가 GET,POST 방식만을 지원하기 때문에 REST 방식을 제대로 사용하려면 브라우저가 지원하지 않는 상황을 고려해야만 한다.
- PUT,PATHC,DELETE와 같은 전송하는 방식을 'Overloaded POST'라고 한다. 브라우저에서 'Overloaded POST' 방식을 처리되기 위해 위 태그 내용을 추가 한다.
'◽ Spring, SpringBoot' 카테고리의 다른 글
[Spring - (8) ] Mysql 설정 및 테스트 (0) | 2019.08.06 |
---|---|
[Spring - (7) ] Mybatis 설정하기 (0) | 2019.08.05 |
[Spring - (6) ] 특정 사이트 값 추출하기(웹 크롤링) - Jsoup (0) | 2019.08.03 |
[Spring - (5) ] 한글이 깨질 때. (0) | 2019.08.03 |
[Spring - (4) ] 명칭 정리 : JSON, handlebars, DOM, BOM, 트랜잭션, AOP (0) | 2019.07.23 |
[Spring - (2) ] 예제 프로젝트 초기 설정 - ex00 (0) | 2019.07.16 |
[Spring - (1) ] MVC 패턴(=Model2) - 수정1 (0) | 2019.06.12 |