เรียกใช้วิธีการใส่คำอธิบายประกอบ @Bean ในการกำหนดค่า Spring java
ฉันอยากรู้ว่าการฉีดสปริงจัดการกับวิธีการโทรด้วย@Beanคำอธิบายประกอบอย่างไร ถ้าฉันใส่@Beanคำอธิบายประกอบในเมธอดและส่งคืนอินสแตนซ์ฉันเข้าใจว่าสิ่งนั้นบอกให้สปริงสร้าง bean โดยเรียกใช้เมธอดและรับอินสแตนซ์ที่ส่งคืน อย่างไรก็ตามบางครั้งถั่วนั้นจะต้องใช้ในการต่อสายถั่วอื่นหรือตั้งค่ารหัสอื่น วิธีปกติจะทำคือเรียกใช้@Beanวิธีการใส่คำอธิบายประกอบเพื่อรับอินสแตนซ์ คำถามของฉันคือเหตุใดสิ่งนี้จึงไม่ทำให้มีหลายอินสแตนซ์ของถั่วลอยอยู่รอบ ๆ ? ตัวอย่างเช่นดูรหัสด้านล่าง (นำมาจากคำถามอื่น) entryPoint()วิธีการที่กำกับด้วย@Beanดังนั้นฉันจะคิดฤดูใบไม้ผลิที่จะสร้างตัวอย่างใหม่ของBasicAuthenticationEntryPointเป็นถั่ว จากนั้นเราจะเรียกentryPoint()อีกครั้งในการกำหนดค่าบล็อก แต่ดูเหมือนว่าentryPoint()จะส่งคืนอินสแตนซ์ bean และไม่ได้ถูกเรียกหลายครั้ง (ฉันพยายามบันทึกและได้รับรายการบันทึกเพียงรายการเดียว) เป็นไปได้ว่าเราสามารถเรียกใช้entryPoint()หลายครั้งในส่วนอื่น ๆ ของการกำหนดค่าและเราจะได้รับอินสแตนซ์เดียวกันเสมอ ความเข้าใจของฉันถูกต้องหรือไม่? ฤดูใบไม้ผลิมีการเขียนวิธีการใหม่ที่มีคำอธิบายประกอบด้วยมนต์ขลัง@Beanหรือไม่? @Bean public BasicAuthenticationEntryPoint entryPoint() { BasicAuthenticationEntryPoint basicAuthEntryPoint = new BasicAuthenticationEntryPoint(); basicAuthEntryPoint.setRealmName("My Realm"); return basicAuthEntryPoint; } @Override protected void configure(HttpSecurity http) throws Exception { http .exceptionHandling() .authenticationEntryPoint(entryPoint()) .and() .authorizeUrls() …