[Spring] 초기 설정 - 2/2

기본 설정

- lombok : 1.18.12 ver

 -> 다양한 어노테이션(@)의 사용을 도와줌 


Junit 설정

- 단위 테스트 용

- lombok의 @Test 어노테이션으로 지정 후 사용

- Junit test 대상을 수행, 및 콘솔에 출력한다.

- 예제 코드처럼 Test 어노테이션 아래의 부분을 수행


※ pom.xml 설정

- junit : 4.13 ver

- spring-test : 4.3.14 ver (상단의 properties 의 버전과 같은 버전으로 설정해야 함)

- maven-compiler-plugin : 2.5.1 ver


JDBC

- 별도로 DAO 클래스 파일을 생성하거나 싱글톤 객체를 생성할 필요없이 maven dependency, xml 파일 등을 이용하여 커넥션 풀을 구성하여 사용이 가능하다.

mybatis를 이용하는 경우, pom.xml 파일 설정

- mybaits : 3.5.9 ver

- jdbc : 4.3.14 ver

- HikariCP : 4.0.3 ver

- mybatis-spring : 1.3.2 ver

- mysql-connector-java : 8.0.26 ver

- spring-jdbc : 4.3.14 ver

※ root-context.xml 설정 파일

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
<?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:mybatis="http://mybatis.org/schema/mybatis-spring"
    xsi:schemaLocation="
    http://mybatis.org/schema/mybatis-spring
    http://mybatis.org/schema/mybatis-spring.xsd
    http://www.springframework.org/schema/beans
    https://www.springframework.org/schema/beans/spring-beans.xsd">
    <!-- Root Context: defines shared resources visible to all other web components -->
 
    <!-- 위에 있는 내용 : 해당하는 XML 에 어떤 태그들을 사용할 수 있는 정의해놓은 스키마 파일들을 로드하는 코드 -->
    <!-- Root Context: defines shared resources visible to all other web components -->
    <!-- JDBC(Connection) 정의하는 공간 -->
    <!-- DBCP(Data Base Connection Pool)/HikariCP 설정 잡아주기 -->
 
    <!-- bean : 객체 생성 태그 -->
    <!-- id attribute : 변수명 지정 -->
    <!-- class attribute : 어떤 클래스를 생성할 건지 경로까지 잡아주기 -->
    <bean id="hikariConfig" class="com.zaxxer.hikari.HikariConfig">
        <!-- setter 메소드 사용 -->
        <property name="driverClassName"
            value="oracle.jdbc.driver.OracleDriver" /> <!-- 드라이버 클래스 이름 -->
        <property name="jdbcUrl"
            value="jdbc:oracle:thin:@localhost:1521:hr" /> <!-- url -->
                
        <property name="username" value="유저명" /> <!-- user 이름 -->
        <property name="password" value="유저 패스워드" /> <!-- 패스워드 -->
    </bean>
 
    <!-- DBCP 만들어주는 클래스 생성 -->
    <bean id="dataSource"
        class="com.zaxxer.hikari.HikariDataSource" destroy-method="close">
        <!-- 생성자 사용하는 태그 -->
        <!-- ref : reference 약자 / 위에 있는 클래스 변수명을 작성 -->
        <constructor-arg ref="hikariConfig" />
    </bean>
    <!-- DI : Dependency Injection(의존성 주입) -->
    <!-- 클래스 간의 결합도가 낮아진다. : 하나의 클래스를 변경했다고 해서 다른 클래스가 영향을 받지 않는다. -->
    <!-- setter 메소드를 사용 -->
    <!-- constructor를 사용 -->
 
 
    <!-- SqlSessionFactory : connection 가져다가 CRUD 작업을 수행할 수 있게끔 하는 클래스 -->
    <bean class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
    </bean>
    
    <mybatis:scan base-package="mapper에 해당하는 패키지 경로" />
 
</beans>
cs


JDBC에서 SQL 구문은 mapper 파일을 만들어 관리한다.

인터페이스 파일로 DAO를 수행할 함수를 만들고, XML 파일에서 구체화한다.

-java파일은 인터페이스 파일이다.




간단한 SQL 은 인터페이스 파일에서 구현한다.

-tmapper.java




-tmapper.xml





1. select 어노테이션으로 인터페이스 파일에서 구현

   2. 인터페이스 파일에서 선언 후, xml 파일에서 구현(id는 메소드의 이름과 동일 해야 하며, return 타입은 resultType 으로 명시한다.)


log4jdbc 의 경우

- log4jdbc-log4j2-jdbc4 : 1.16 ver

 -> 바인드 변수(? 기호)를 위한 maven dependency

 

-resources 디렉토리에 설정파일을 추가한다.






※log4jdbc.log4j2.properties 파일 내용

1
2
3
4
log4jdbc.spylogdelegator.name=net.sf.log4jdbc.log.slf4j.Slf4jSpyLogDelegator
log4jdbc.dump.sql.maxlinelength=0
log4jdbc.auto.load.popular.drivers=false
log4jdbc.drivers=com.mysql.cj.jdbc.Driver
cs

- root-context.xml 파일의 hikariConfig 의  property 설정을 다음과 같이 작성한다.


1
2
<property name="driverClassName" value="net.sf.log4jdbc.sql.jdbcapi.DriverSpy" /> <!-- 드라이버 클래스 이름 -->
<property name="jdbcUrl" value="jdbc:log4jdbc:oracle:thin:@localhost:1521:hr" /> <!-- url -->
cs

- 해당 내용 값을 위와 같이 수정한다.




댓글