First of all, public static non-final fields are evil. Spring does not allow injecting to such fields for a reason.
Your workaround is valid, you don’t even need getter/setter, private field is enough. On the other hand try this:
@Value("${my.name}")
public void setPrivateName(String privateName) {
Sample.name = privateName;
}
(works with @Autowired/@Resource). But to give you some constructive advice: Create a second class with private field and getter instead of public static field.