Welcom画面で Create New Project
を選択する。
左ペインから Spring Initilaizr
を選択して、Nextボタンを押す。
各種プロジェクト情報を入力する。
Dependenciesを設定する。
プロジェクト名を入力して、完了。
Welcom画面で Create New Project
を選択する。
左ペインから Spring Initilaizr
を選択して、Nextボタンを押す。
各種プロジェクト情報を入力する。
Dependenciesを設定する。
プロジェクト名を入力して、完了。
Spring Bootのユニットテストでセッションスコープのテストをしたいときに MockHttpSession
を使用することでモックデータを作成ができる。
MockHttpSession session = new MockHttpSession(); session.setAttribute("key", "value"); MockHttpServletRequest request = new MockHttpServletRequest(); request.setSession(session);
BeforeMappingとAfterMappingでマッピング前後の処理を追加できる。
Mapperの作成
@Mapper public abstract class PersonMapper { @BeforeMapping protected void before(PersonEntity entity) { entity.setName("BEFORE_" + entity.getName()); } @AfterMapping protected void after(@MappingTarget Person person) { person.setName(person.getName() + "_AFTER"); } public abstract Person toPerson(PersonEntity entity); }
生成されたMapper
/* @Generated( value = "org.mapstruct.ap.MappingProcessor", date = "2018-04-02T22:00:38+0900", comments = "version: 1.2.0.Final, compiler: javac, environment: Java 9.0.1 (Oracle Corporation)" ) */ public class PersonMapperImpl extends PersonMapper { @Override public Person toPerson(PersonEntity entity) { before( entity ); if ( entity == null ) { return null; } Person person = new Person(); person.setName( entity.getName() ); person.setAge( entity.getAge() ); after( person ); return person; } }
テストコード
@Test public void test() { PersonEntity entity = new PersonEntity(); entity.setName("curry"); PersonMapper mapper = Mappers.getMapper(PersonMapper.class); Person person = mapper.toPerson(entity); assertThat(person.getName()).isEqualTo("BEFORE_curry_AFTER"); }