Я ломаю голову над этим. Не уверен, что мне не хватает. Я не могу получить аннотации @Value для работы в чистом java-настроенном приложении spring (не в Интернете)
@Configuration
@PropertySource("classpath:app.properties")
public class Config {
    @Value("${my.prop}") 
    String name;
    @Autowired
    Environment env;
    @Bean(name = "myBean", initMethod = "print")
    public MyBean getMyBean(){
         MyBean myBean = new MyBean();
         myBean.setName(name);
         System.out.println(env.getProperty("my.prop"));
         return myBean;
    }
}
Файл свойства содержит только my.prop=avalue bean выглядит следующим образом:
public class MyBean {
    String name;
    public void print() {
        System.out.println("Name: " + name);
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
Переменная среды печатает значение правильно, @Value - нет. avalue Name: ${my.prop}
Основной класс просто инициализирует контекст.
AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(Config.class);
Однако, если я использую
@ImportResource("classpath:property-config.xml")
с этим фрагментом
<context:property-placeholder location="app.properties" />
 тогда он отлично работает. Конечно, теперь среда возвращает null.