1. Request Url Mapping 추가
- context:component-scan : @Controller, @Service, @Repository, @Component 등의 Annotation을 붙인 클래스를 bean으로 자동 등록한다.
- base-package를 기준으로 스캔, 클래스 로딩, bean 정의 및 생성
- src > main > webapp > WEB-INF > spring > appServlet > servle_context.xml
<context:component-scan base-package="com.hhkim.homepage" />
<!-- Request Url Mapping (controller) -->
<!-- base-package : controller 파일 존재 패키지, 2가지 형태로 사용가능 -->
<context:component-scan base-package="com.hhkim.homepage.controller, *.*.*.controller" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<!-- Request Url Mapping (service) -->
<!-- base-package : service 파일 존재 패키지, 2가지 형태로 사용가능 -->
<context:component-scan base-package="com.hhkim.homepage.service, *.*.*.service" use-default-filters="false">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service" />
</context:component-scan>
2. Qry Mapping 위치 변경
- Mapper 위치 설정, 아래 코드의 mapperLocations 부분에서 설정
- rc > main > webapp > WEB-INF > spring >root-context.xml
<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*:/**/query/*Qry.xml" />
</bean>
3. 컨트롤러 폴더 및 파일 생성
- core 단은 해당 컨트롤러 혹은 서비스에 상속될 코드
- src > main > java > com > hhkim > homepage > controller > testController.java
- src > main > java > com > hhkim > homepage > query> testQry.java
- src > main > java > com > hhkim > homepage > service> testService.java
- src > main > java > com > core> base> BaseController.java
- src > main > java > com > core> base> BaseService.java
- testController.java
package com.hhkim.homepage.controller;
import java.util.Map;
import javax.annotation.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import com.hhkim.homepage.HomeController;
import com.hhkim.homepage.service.testService;
import core.base.BaseController;
@Controller
@RequestMapping("/base")
public class testController extends BaseController {
@Resource
private testService tSvc;
@RequestMapping("/test")
public ModelAndView testRequest(@RequestParam Map<String, Object> iParam) {
Map<String, Object> rtMap = null;
try {
System.out.println("testRequest 컨트롤러 호출 확인");
rtMap = tSvc.testSRequest(iParam);
}catch(Exception e) {
System.out.println("testRequest Error : " + e.toString());
}
ModelAndView modelAndView = new ModelAndView("jsonView", rtMap);
System.out.println("modelAndView 결과 확인 : " + modelAndView);
return modelAndView;
}
}
- testQry.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="testQry">
<select id="selTestTime" resultType="java.lang.String">
/* LaborQry.selTestTime*/
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS')
FROM DUAL
</select>
</mapper>
- testService.java
package com.hhkim.homepage.service;
import java.util.HashMap;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import core.base.BaseService;
@Service
public class testService extends BaseService {
public Map<String, Object> testSRequest(Map<String, Object> iParam) throws Exception {
Map<String, Object> rtMap = new HashMap<String, Object>();
String resultQry = "";
try {
resultQry = sqlSession.selectOne("testQry.selTestTime", iParam);
rtMap.put("KeyValue", resultQry);
System.out.println("INPUT 변수 확인 : " + iParam);
System.out.println("rtMap 결과값 확인 : " + rtMap);
}catch(Exception e) {
System.out.println("오류 확인 : " + e.toString());
}
return rtMap;
}
}
- BaseController.java
package core.base;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class BaseController {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
}
- BaseService.java
package core.base;
import org.apache.ibatis.session.SqlSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
public class BaseService {
@Autowired
protected SqlSession sqlSession;
public void setSqlSession(SqlSession sqlSession){
this.sqlSession = sqlSession;
}
protected Logger logger = LoggerFactory.getLogger(this.getClass());
}
4. 컨트롤러 및 서비스, Qry 적용 확인
- 인터넷 주소창 : http://localhost:8080/homepage/base/test
- Console 창에서 확인 가능
5. ERROR CHECK
- 1) controller나 service 오류 메시지가 생성될 시 어노테이션 확인 및 () 속의 경로를 확인한다
- 2) servlet-context.xml의 base-package 경로 확인
- 3) @Resoure 오류 확인 이후 maven에서 설치 시 오류가 발생했을 수도 있으므로 File > Properties > Java Build Path > Libraries > Maven Dependencies 목록을 펼쳐 확인
- 4) 그 외에도 설정 파일 오류 시 실행되지 않을 수 있음
'Server > Spring(구버전)' 카테고리의 다른 글
11. Mapper.xml (Query) 변경 후 자동인식 (0) | 2022.04.01 |
---|---|
10. logback 설정 (0) | 2022.03.31 |
8. Spring-myBatis-oracle 연동 및 연결 확인 테스트 (0) | 2022.03.30 |
7. Oracle DB (JDBC) Web Server 연동 (JUnit Test) (0) | 2022.03.29 |
6. 자바 버전 변경 (0) | 2022.03.29 |