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 |