Spring ma przeciążenie getBean, które akceptuje parametry. Jak mogę przekazać te parametry do funkcji tworzenia @Bean dla fasoli?

class Person
{
    String name;
    Person(String name) {
        this.name = name;
    }
}

    public class SpringAnnotationMain {
     public static void main(String[] args) {
         AnnotationConfigApplicationContext ctx =    new AnnotationConfigApplicationContext(SpringAnnotationMain.class); 
           Person x = ctx.getBean(Person.class, new Object[] {"Alice"}); 
           System.out.println(x.name);

         ctx.close();
     }
    }
0
Gonen I 20 listopad 2019, 15:49

1 odpowiedź

Spring przekaże argumenty jako parametry do funkcji @Bean, a stamtąd przekaże je do konstruktora twojego beana,

@Configuration
class MyConfig {
     @Bean
     @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
     Person createPerson(String name)
     {
         return new Person(name);
     }

}
0
Gonen I 20 listopad 2019, 15:49
To powszechne nieporozumienie dotyczące schizofrenii
 – 
Gonen I
20 listopad 2019, 15:57