1. 이클립스에 스프링 개발환경 설치 후, 프로젝트 생성하기
5. root-context/servlet-context/web 설정파일 작성하기
마이바티스 관련 설정 파일입니다. 카멜 케이스를 자동으로 매핑해주는 옵션을 추가해줍니다. 이것은 꼭 필요합니다!! 데이터 베이스의 컬럼명이 access_token 일 때, accessToken 변수에 자동으로 집어넣을 수 있는 옵션입니다.
파일의 경로는 src/main/resources/config/mybatis-config.xml 입니다. config 패키지를 별도로 생성한 후 그 안에 파일을 생성해주세요.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="mapUnderscoreToCamelCase" value="true" />
</settings>
<typeAliases>
<package name="com.study.testapp.model" />
</typeAliases>
</configuration>
데이터베이스에 접속하기 위한 파일입니다. 해당하는 데이터베이스에 맞게 정보를 작성해주세요. 이전 포스팅에서는 마이에스큐엘을 설치하였기 때문에 저는 그대로 마이에스큐엘로 진행하겠습니다.
이후 데이터베이스를 만들고 사용자를 추가해서 좀 더 복잡한 과정이 들어갈 수 있지만 지금은 root 계정으로 설치할 때 설정했던 비밀번호를 사용하여 접속정보를 작성하였습니다.
파일의 경로는 src/main/resources/db.properties 입니다.
db.driver=com.mysql.jdbc.Driver
db.host=jdbc:mysql://localhost:3306/mysql?serverTimezone=UTC&allowPublicKeyRetrieval=true&useSSL=false
db.username=root
db.password=root
MySQL 워크벤치에 접속해서 다음 쿼리를 입력하여 사용자 테이블을 생성합니다.
use mysql;
CREATE TABLE ACCOUNT (
id varchar(100) primary key,
password varchar(256),
email varchar(100),
phone varchar(20),
role varchar(20)
);
위에서 만든 테이블에 관한 로그인/회원가입을 위한 2종류의 쿼리를 작성합니다. 가장 기본적인 쿼리이기 때문에 큰 부담없이 작성하실 수 있습니다.
먼저 쿼리 파일과 함께 한쌍으로 필요한 매퍼 인터페이스 부터 작성해 보겠습니다.
파일 경로는 com.study.testapp.account.mapper.AccountMapper.java 입니다.
package com.study.testapp.account.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.study.testapp.model.Account;
@Mapper
public interface AccountMapper {
Account getAccountById(String id);
void insertAccount(Account account);
}
이제 XML 파일을 만들고 함수명과 동일하게 id 값을 작성 후, 쿼리를 작성합니다. 완성된 파일은 아래에 나와있습니다.
파일경로는 src/main/resources/mapper/account-mapper.xml 입니다.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.study.testapp.account.mapper.AccountMapper">
<!-- 로그인 -->
<select id="getAccountById" parameterType="string" resultType="Account">
SELECT
id
, password
, email
, phone
, role
FROM ACCOUNT
WHERE id = #{id};
</select>
<!-- 회원가입 -->
<insert id="insertAccount" parameterType="Account">
INSERT INTO ACCOUNT (
id
, password
, email
, phone
, role
) VALUES (
#{id}
, #{password}
, #{email}
, #{phone}
, 'ROLE_USER'
)
</insert>
</mapper>
이제 마이바티스에 관한 스프링 프레임워크 설정입니다. 이 파일을 생성하고 아래와 같은 내용으로 작성하시면 됩니다. config, mapper 경로와 basePackage 값, db.properties 파일의 위치 값을 잘 확인하고 넣어주세요.
<?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:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="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.xsd">
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSourceSpied" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${db.driver}"/>
<property name="url" value="${db.host}"/>
<property name="username" value="${db.username}"/>
<property name="password" value="${db.password}"/>
</bean>
<bean id="dataSource" class="net.sf.log4jdbc.Log4jdbcProxyDataSource">
<constructor-arg ref="dataSourceSpied" />
<property name="logFormatter">
<bean class="net.sf.log4jdbc.tools.Log4JdbcCustomFormatter">
<property name="loggingType" value="MULTI_LINE" />
<property name="sqlPrefix" value="SQL : "/>
</bean>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="sqlSessionFactory"
class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:config/mybatis-config.xml" />
<property name="mapperLocations" value="classpath:mapper/*.xml" />
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.study.testapp" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
</beans>
다음과 같이 파일이 잘 생성되었는지 확인해주세요.
[Backend/Spring] 9. 로그인/회원가입 (0) | 2021.03.02 |
---|---|
[Backend/Spring] 8. 스프링 시큐리티 설정하기 (0) | 2021.02.22 |
[Backend/Spring] 6. MySQL 설치하기 (0) | 2021.02.18 |
[Backend/Spring] 5. root-context/servlet-context/web 설정파일 작성하기 (0) | 2021.02.17 |
[Backend/Spring] 4. 메이븐 패키지 설치 (pom.xml) (0) | 2021.02.17 |