proxyBeanMethods:代理bean方法


配置類里使用@Bean標注在方法上給容器注冊組件,默認是單實例的,稱為Full模式,也就是說,返回的組件永遠相同

@SpringBootApplication
public class MainApplication {
    public static void main(String[] args) {
        //1.返回IOC容器
        ConfigurableApplicationContext run =
                SpringApplication.run(MainApplication.class, args);

        //2.查看容器里面的組件
        String[] names = run.getBeanDefinitionNames();
        for (String name : names) {
            System.out.println(name);
        }
        //3.從容器中獲取組件(通過name)
        Pet tom01 = run.getBean("tom",Pet.class);
        Pet tom02 = run.getBean("tom",Pet.class);
        System.out.println(tom01==tom02); //true,因為組件是單實例的

        // 從容器中獲取組件(通過配置類)
        MyConfig beans = run.getBean(MyConfig.class);
        User user = beans.user01();
        User user01 = beans.user01();
        System.out.println(user==user01); //true
    }
}
但是組件是否為單實例可以通過 proxyBeanMethods方法修改
@Configuration(proxyBeanMethods = false)//這樣就是多實例了,稱為lite模式
一般有組件依賴的時候,我們使用Full模式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM