Spring を使用する上で、
周辺アーキテクチャに縛りを加えてはいけない
public interfaceEmployeeRepository {
Employee getItem();
}
@Repository @Primary
public class EmployeeJdbcRepository implements EmployeeRepos.. {}
@Repository
public class EmployeeMongoRepository implements EmployeeRep.. {}
@Service
public class EmployeeService {
@Autowired
public EmployeeService(EmployeeRepository employeeRepository) {}
}
112.
Spring を使用する上で、
周辺アーキテクチャに縛りを加えてはいけない
public interfaceEmployeeRepository {
Employee getItem();
}
@Repository @Primary
public class EmployeeJdbcRepository implements EmployeeRepos.. {}
@Repository
public class EmployeeMongoRepository implements EmployeeRep.. {}
@Service
public class EmployeeService {
@Autowired
public EmployeeService(EmployeeRepository employeeRepository) {}
}
Serviceが見るのは
interface
113.
Spring を使用する上で、
周辺アーキテクチャに縛りを加えてはいけない
public interfaceEmployeeRepository {
Employee getItem();
}
@Repository @Primary
public class EmployeeJdbcRepository implements EmployeeRepos.. {}
@Repository
public class EmployeeMongoRepository implements EmployeeRep.. {}
@Service
public class EmployeeService {
@Autowired
public EmployeeService(EmployeeRepository employeeRepository) {}
}
Serviceが見るのは
interface
Primary 側が DI される
@Bean + @ConditionalOn 等の利用でより柔軟に