Я создал модель
@Repository
public class Model {
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Model(String name) {
super();
this.name = name;
}
public Model() {
super();
// TODO Auto-generated constructor stub
}
}
Затем я создал класс конфигурации с бином
@Component
public class Config {
@Bean
public Model beanB() {
Model a=new Model();
a.setName("Daniel3");
return a;
}
}
Затем я создал класс контроллера
@RestController
public class TestController {
@Autowired
Model model;
@GetMapping("/test")
@ResponseBody
public Model test() {
return model;
}
}
Когда Я нажимаю на URL контроллера, я получаю ответ ниже
{"name":null}
Но если я изменю класс конфигурации как
@Bean
@Primary
public Model beanB() {
Model a=new Model();
a.setName("test");
return a;
}
, я получу вывод как {"name":"test"}
И я наблюдаю такое же поведение при использовании Autowired Model вместо новой Model ()
Может кто-нибудь объяснить это поведение?