2021. 3. 7. 23:35
1) web.xml 파일에 <context-param> 의 <param-value>에 내용을 추가함
DataSource DB 연결정보 / Mybatis 설정을 위한 mybatis-mapper.xml 추가
/WEB-INF/config/spring/application-datasource.xml (DB)
/WEB-INF/config/mapper/mybatis-mapper.xml (mybatis)
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/applicationContext.xml
/WEB-INF/config/spring/application-datasource.xml <!-- DB 설정 위치 -->
/WEB-INF/config/mapper/mybatis-mapper.xml <!-- MyBatis Mapper 위치 -->
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>/WEB-INF/view/Login/main.jsp</welcome-file>
</welcome-file-list>
</web-app>
2) pom.xml 변화 (마이바티스, mysql 커넥터, inject 애너테이션 사용가능하게 하는 라이브러리 등 추가)
<!-- 롬복 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.18</version>
<scope>provided</scope>
</dependency>
<!-- 마이바티스 라이브러리-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.2</version>
</dependency>
<!-- 마이바티스 : 스프링 라이브러리 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.0</version>
</dependency>
<!-- mysql 커넥터-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
<!-- 스프링 jdbc -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
<!-- 아파치 dbcp -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-dbcp2</artifactId>
<version>2.8.0</version>
</dependency>
<!-- @inject 사용을 위한 -->
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
3) application-datasource.xml (spring xml을 생성하고 빈만 설정해주면 됨) - Mysql
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/todoApp?characterEncoding=UTF-8"/>
<property name="username" value="root"/>
<property name="password" value="1234"/> </bean>
</beans>
4) mybatis-mapper.xml (spring xml 을 생성하고, 빈 설정)
<?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:jdbc="http://www.springframework.org/schema/jdbc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd">
<bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- <property name="mapperLocations" value="classpath:/mapper/sql/*_SQL.xml" /> -->
</bean>
<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
<constructor-arg index="0" ref="sqlSession"/>
</bean>
</beans>
sqlSession 이름으로 빈을 생성하고, 클래스는 SqlSessionFactoryBean 객체를 사용
프로퍼티이름은 dataSource 이며, dataSource Bean을 참조한다.
sqlSessionTemplate 이름으로 빈 생성, 클래스는 SqlSessionTemplate을 사용한다.
5) 아직 Mybatis를 사용하는 설정을 적용하지 않은 상태이며, DB 연결만 테스트를 해본 코드임
package com.todoapp.Login.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.inject.Inject;
import javax.sql.DataSource;
import java.sql.Connection;
@RestController
public class Login {
@Inject
private DataSource dataSource;
@RequestMapping("/login")
public String login()
{
try
{
Connection conn = (Connection) dataSource.getConnection();
System.out.println("성공 : " + conn);
}
catch(Exception e)
{
System.out.println("실패 !");
e.printStackTrace();
}
return "";
}
}
6) 성공 메세지가 나옴
이걸로 몇일을 헤메다가 결국 이까지 해결하긴 했지만, 각각이 무엇인지 정확하게 이해한 것이 아니라서, Mybatis SQL 매핑하는 것까지 해보고 동작하는 과정을 자세하게 찾아보아야겠음.
설정하는 것이 이번에 총 세번째인데 할 때마다 다른 에러로 문제를 겪는 기분
'Spring Framework > Spring' 카테고리의 다른 글
[JSON] Java - json 파싱 (0) | 2021.07.13 |
---|---|
[spring] mybatis 설정 (0) | 2021.03.30 |
[ Intellij] 4. Spring MVC + Maven 설정 후 Tomcat 연동 (0) | 2021.02.17 |
[Intellij] 3. Spring MVC 에 Maven 추가 (0) | 2021.02.17 |
[Intellij] 2. Spring MVC 프로젝트 설정 (0) | 2021.02.17 |