@Springfield - Basic

Code

package com.u2ware.springfield.sample.part1.step1;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import com.u2ware.springfield.config.Springfield;
import com.u2ware.springfield.config.Springfield.Strategy;

@Springfield(
	strategy=Strategy.SQLSESSION,
	identity={"id"}
)
public @ToString class MybatisBean {

	@Getter @Setter private String id;
	@Getter @Setter private String password;
	@Getter @Setter private String name;
	@Getter @Setter private Integer age;
}
		
<?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.u2ware.springfield.sample.part1.step1.MybatisBean">

	<select id="exists"> .... </select>

	<insert id="create"> .... </insert>

	<select id="read"> .... </select>

	<update id="update"> .... </update>

	<delete id="delete"> .... </delete>

	<select id="findAll"> .... </select>

	<select id="findAllCount"> .... </select>

</mapper>
		

Beans

@Springfield(strategy=Strategy.SQLSESSION) 선언으로 다음 4개의 Bean 이 자동 생성, 등록 된다.

bean name bean type bean implement
"mybatisBeanController"EntityController<MybatisBean, MybatisBean>com.u2ware.springfield.controller. EntityHandler
"mybatisBeanValidator" EntityValidator<MybatisBean, MybatisBean> com.u2ware.springfield.validation. EntityValidatorImpl
"mybatisBeanService" EntityService<MybatisBean, MybatisBean> com.u2ware.springfield.service. EntityServiceImpl
"mybatisBeanRepository"EntityRepository<MybatisBean, String> com.u2ware.springfield.repository.sqlsession. EntitySqlsessionRepository

RequestMapping

CRUD 를 기본으로 한 EntityController 의 9 개 method 를 RequestMapping 한다.

매핑 경로 HTTP Method Controller Method 이름 예제 Command 객체 예제 매핑 경로
/{topLevelMapping}/ GET home() MybatisBean/part1/step1/
/{topLevelMapping} GET findForm() MybatisBean/part1/step1
/{topLevelMapping} POST find() MybatisBean/part1/step1
/{topLevelMapping}/{id} GET read() MybatisBean/part1/step1/foo
/{topLevelMapping}/new GET createForm()MybatisBean/part1/step1/new
/{topLevelMapping}/new POST create() MybatisBean/part1/step1/new
/{topLevelMapping}/{id}/editGET updateForm()MybatisBean/part1/step1/foo/eidt
/{topLevelMapping}/{id}/editPUT update() MybatisBean/part1/step1/foo/eidt
/{topLevelMapping}/{id}/editDELETEdelete() MybatisBean/part1/step1/foo/eidt
Note:
@Springfield 는 identity 속성에서 정의된 bean property 를 RequestMapping 의 {id}에 매핑한다.
Note:
@Springfield 의 topLevelMapping 속성에 별도의 선언 이 없으면, basePackage 를 기준으로 결정된다.
예제에서 basePackage 는 com.u2ware.springfield.sample 이므르 예제에서 topLevelMapping 은 /part1/step2 이 된다.

MyBatis

Reference
Mybatis
application-context.properties:

@Springfield 는 패턴에 맞는 파일을 찾아 sql mapping 한다.

orm.sqlsession.configLocation=
orm.sqlsession.mapperLocationsPattern=/**/*.sqlsession.xml