So, I've Java Spring class
@Service
@ConfigurationProperties(prefix = "spring.phone")
@Data
public class PhoneProps {
private List<String> testNumber = new ArrayList<>();
@Bean
public void display() {
System.out.println(testNumber);
}
}
I will use "display" in another class, but when I call it I get an empty array. But Bean method works correctly in this (PhoneProps
) class.
Example:
When I call in PhoneProps
class (When works @Bean
):
[998976460010, 998939378668]
When I call "display" in another class:
[]
How can I use objects from PhoneProps
in another file?
I use YAML file.
CodePudding user response:
You have two stages. First stage, load data by create object and second stage, @Bean. If create @Bean, all stages must be in it.
CodePudding user response:
Try the following:
@Service
public class PhoneProps {
@Value("${spring.phone}")
private List<String> testNumber = new ArrayList<>();
public void display() {
System.out.println(testNumber);
}
}
@Bean
annotation creates a bean from the returned object of the annotated method, so I guess you don't want that. Additionally, use @Value
to inject properties.
Now the only thing you need is to inject PhoneProps
in another Spring-managed Bean and call its display()
method.