Here’s a simple recipe I’ve used over and over (wherever auto-wiring constructors was inappropriate). Validating at container startup time is certainly better than relying on NPEs at runtime.

import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;

public class FooService implements InitializingBean {
    private Dependency dependency;

    public void afterPropertiesSet() throws IllegalArgumentException {
        Assert.notNull(dependency, "Dependency cannot be null");
    }

    public void setDependency(Dependency dependency) {
        this.dependency = dependency;
    }
}