Designing object oriented clean code structure with spring services
I would inject the converterservice into ShoppingList and implement an add() function, which adds an element to the ShoppingList after conversion.
void add(name, ingredient, unit) {
    IngredientQuantity toAdd = this.converterService.convert(name, ingredient, unit); // terrible naming, todo!
    this.ingredients.add(toAdd);
}

Now the shopping list is the owner of conversion which (arguably) is modelling real life. When I need to shop for milk, I convert the American recipes to litres instead of ounces or whatever.
This also simplifies your last lambda function, you just need to iterate over the keyset and call ShoppingList::add, which is Java8+ method ref syntax.
The other huge lambda should probably also be split into parts, I mean, I love functional java as much as anyone, but I believe this is cutting the line of functional utility over readability.
Pseudocode
foreach Recipe:
    foreach Ingredient : Recipe
        compute(ingredient)

These are my 2 cents.