| | |
| | | |
| | | import de.gedoplan.seminar.sbt.di.exercise.domain.Cocktail; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Qualifier; |
| | | import org.springframework.context.annotation.Bean; |
| | | import org.springframework.context.annotation.Configuration; |
| | | import org.springframework.context.annotation.Primary; |
| | | import org.springframework.web.context.annotation.RequestScope; |
| | | |
| | | import javax.annotation.PostConstruct; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | @RequestScope |
| | | @Configuration |
| | | public class CocktailsProducer { |
| | | |
| | | @Autowired |
| | | private CocktailService cocktailService; |
| | | |
| | | private List<Cocktail> cocktailsAlcoholic; |
| | | private List<Cocktail> cocktailsNonAlcoholic; |
| | | |
| | | @PostConstruct |
| | | private void init() { |
| | | Map<Boolean,List<Cocktail>> cocktails = cocktailService.findAll().stream() |
| | | .collect(Collectors.groupingBy(Cocktail::isAlcoholic)); |
| | | cocktailsAlcoholic = cocktails.get(true); |
| | | cocktailsNonAlcoholic = cocktails.get(false); |
| | | } |
| | | |
| | | @Primary |
| | | @RequestScope |
| | | @Bean |
| | | protected List<Cocktail> getCocktails() { |
| | | return cocktailService.findAll(); |
| | | } |
| | | |
| | | @Qualifier("alcoholic") |
| | | @RequestScope |
| | | @Bean |
| | | protected List<Cocktail> getCocktailsAlcoholic() { |
| | | return cocktailsAlcoholic; |
| | | } |
| | | |
| | | @Qualifier("non-alcoholic") |
| | | @RequestScope |
| | | @Bean |
| | | protected List<Cocktail> getCocktailsNonAlcoholic() { |
| | | return cocktailsNonAlcoholic; |
| | | } |
| | | } |