5. newだけのWebアプリ
Controller AService XRepository
new
DB
• ServiceとRepositoryが密結合
• Serviceのメソッドが呼ばれる度に、毎回新しいRepositoryインスタン
スを生成する
public class AService {
public X method() {
XRepository xRepository = new XRepository();
return xRepository.find();
}
...
8. 簡単なFactoryクラスと利用方法
public class Factory {
public static XRepository create() {
return new XRepositoryImpl();
}
...
public class AServiceImpl implements AService {
public X method() {
XRepository xRepository = Fctory.create();
return xRepository.find();
}
...
14. XML Bean定義ファイルを使った実装例
<beans ...>
<bean id="aService" class="demo.AServiceImpl">
<property name=xRepository" ref="xRepository" />
</bean>
<bean id="xRepository" class="demo.XRepositoryImpl" />
</beans>
public class AServiceImpl implements AService {
private Xrepository xRepository;
public void setXRepository(XRepository xrepository) {
this.xRepository = xRepository;
}
public X method() {
return xrepository.find();
}
...
15. 現在
• アノテーションを使って、Spring Bootで簡単!
• XML Bean定義ファイルも不要
@Controller @Service @Repository
@Service
public class AServiceImpl implements AService {
@Autowired
private Xrepository xRepository;
public X method() {
return xRepository.find();
}
...
@Repository
public class XRepositoryImpl implements XRepository {
public X find() {
...
}
...
DI Container
Controller AServiceImpl XRepositoryImpl DB