336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
앞서 Spring 4.0 + Java config를 사용하는 기본 구성을 시도해봤뜸.
뭐,,늘 그러하듯이 이제 persistence 설정을 할 차례다.
예전에 iBatis였는데, 어떠한 이유인지 몰라도 myBatis로 바뀐 persistence framework을 사용해보자.
dependency 설정은 다음과 같다.
프로젝트 폴더 구성은 아래와 같다.
DataConfig.java
package com.figo.web.config; import javax.sql.DataSource; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.SimpleDriverDataSource; @Configuration @MapperScan("com.figo.web.persistence") public class DataConfig { @Bean public DataSource dataSource() { SimpleDriverDataSource dataSource = new SimpleDriverDataSource(); dataSource.setDriverClass(com.mysql.jdbc.Driver.class); dataSource.setUsername("XXXXXX"); dataSource.setUrl("jdbc:mysql://{mysql url}:3306/{dbname}"); dataSource.setPassword("xxxxxxxxx"); return dataSource; } @Bean public DataSourceTransactionManager transactionManager() { return new DataSourceTransactionManager(dataSource()); } @Bean public SqlSessionFactoryBean sqlSessionFactoryBean() throws Exception{ SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(dataSource()); // 이 부분은 mybatis mapper 위치에 대해서 설정해주는 부분... sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/*.xml")); return sessionFactory; } }
Mapping 역할을 하는 Interface 파일을 생성
package com.figo.web.persistence; public interface MetaDataMapper { public int getTotalCount(); }
MetaDataMapper xml 파일
Controller
package com.figo.web.controller; import java.text.DateFormat; import java.util.Date; import java.util.Locale; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import com.figo.web.persistence.MetaDataMapper; /** * Handles requests for the application home page. */ @Controller public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class); @Autowired private MetaDataMapper metaData; /** * Simply selects the home view to render by returning its name. */ @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Locale locale, Model model) { logger.info("Welcome home! The client locale is {}.", locale); Date date = new Date(); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); model.addAttribute("serverTime", formattedDate ); model.addAttribute("count", metaData.getTotalCount()); return "home"; } }
view 파일
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> <%@ page session="false" %>Home Hello world!
The time on the server is ${serverTime}.
${count}
간만에 해보려니,,어렵다..
뭐가 뭔지도 잘 모르겠다..ㅠㅠ
다음은 security 설정이다..
그나저나,,,스프링을 제대로 공부하려면 디자인 패턴이라던지 개념관련해서 다시 좀 봐야할 듯 싶다.
'Programming > Java' 카테고리의 다른 글
mybatis sql 구문 재활용 (0) | 2015.05.19 |
---|---|
STS (Spring Tool Suites) with Gradle (0) | 2015.01.22 |
Spring 4.0 + Java Config - web.xml 없애기... (0) | 2014.10.24 |
우분투 톰캣 다중 인스턴스 (Ubuntu 14.04 + Tomcat 8 multiple instances) (0) | 2014.09.09 |
우분투 14.04에 톰캣8 (Tomcat 8) 설치 ,, 후속작업 (0) | 2014.09.06 |