Slide 13
Slide 13 text
BookRepositoryをDIコンテナに登録する
13
@Component
public class InMemoryBookRepository implements BookRepository
{
private Map bookMap;
@PostConstruct
public void init() {
bookMap = new ConcurrentHashMap<>();
bookMap.put(1, new Book(1, “燃えよ剣”, “司馬遼太郎
…
}
@Override
public Optional get(int id) {
return Optional.ofNullable(bookMap.get(id));
}
・・・
}
@ApplicationScoped
public class InMemoryBookRepository implements BookRepository {
private Map bookMap;
@PostConstruct
public void init() {
bookMap = new ConcurrentHashMap<>();
bookMap.put(1, new Book(1, "燃えよ剣", "司馬遼太郎"));
…
}
@Override
public Optional get(int id) {
return Optional.ofNullable(bookMap.get(id));
}
・・・
}
point
point
Spring Framework
MicroProfile(CDI)
• 起動時にclasspathから@Componetがスキャンされ自動
で登録
• スコープは@Scope(“prototype”)など別で指定する
• スコープのデフォルトはSingleton(=Application)
• Springと同様に起動時にclasspathから@ApplicationScopedなど
のスコープアノテーションスキャンされ自動で登録
• スコープは@RequestScopedなどSpringとほぼ同じものが用意され
ている
• ただし、 @Scope(“prototype”)に相当するものはない
脱線ネタ:@PostConstructの挙動は双方で違う
ので注意しましょう