Я пытаюсь изучить SpEl и установить значения полей объекта из свойств.Но в результате поля объекта становятся пустыми.Вот мой код
Класс конфигурации:
@Configuration
@ComponentScan(basePackageClasses = ExpressiveConfig.class)
@PropertySource("classpath:
/fourthversion/chapter3.placeholders/app.properties")
public class ExpressiveConfig {
@Bean
public
static PropertySourcesPlaceholderConfigurer placeholderConfigurer() {
return new PropertySourcesPlaceholderConfigurer();
}
}
Класс, в котором я пытаюсь установить значения полей:
@Component
public class BlankDisc implements CompactDisc {
private String title;
private String artist;
public BlankDisc(@Value("#{systemProperties['disc.title']}") String title,
@Value("#{systemProperties['disc.artist']}") String artist)
{
this.title = title;
this.artist = artist;
}
getters and setters
}
Вот мой тест:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = ExpressiveConfig.class)
public class BlankDiskTest {
@Autowired
private BlankDisc blankDisc;
@Test
public void isBlankDiscNotNull() {
assertNotNull(blankDisc);
System.out.println(blankDisc.getTitle());
System.out.println(blankDisc.getArtist());
}
}
Тест пройден, объект не ноль, но система печатает ноль, ноль. Почему значения полей не устанавливаются?
PS
Если я делаю то же самое, но так:
public BlankDisc(@Value("${disc.title}") String title,
@Value("${disc.artist}") String artist) {
this.title = title;
this.artist = artist;
}
тогда все ОК.