package springtips.configuration;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@SuppressWarnings({"FieldCanBeLocal", "unused"})
@Configuration
public class GenericsAutowiringConfiguration {
private final Repository<Employee> employeeRepository;
private final Repository<Department> departmentRepository;
@Autowired
public GenericsAutowiringConfiguration(Repository<Employee> employeeRepository,
Repository<Department> departmentRepository) {
this.employeeRepository = employeeRepository;
this.departmentRepository = departmentRepository;
}
@Bean
Repository<Employee> employeeRepository() {
return new Repository<Employee>() {
};
}
@Bean
Repository<Department> departmentRepositoryRepository() {
return new Repository<Department>() {
};
}
public interface Repository<T> {
}
private static class Employee {
}
private static class Department {
}
}