spring注解@Bean相关问题

请问在方法上添加@Bean注解,程序在启动的时候是不是会将该方法执行一遍?

@Scope(scopeName = ConfigurableBeanFactory.SCOPE_PROTOTYPE)原型模式的@Bean 方法不会在启动时执行,会在每次获取bean对象时被执行。即会执行多次。
@Scope(scopeName = ConfigurableBeanFactory.SCOPE_SINGLETON)单例模式的@Bean 方法会在启动时执行,并且后续不会再次执行。
没有加@Scope注解默认就是单例模式,即只会在程序启动时被执行一次。

需要配合@Configuration 使用

@Bean 基础概念
@Bean:Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中;
SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理;
@Bean是一个方法级别上的注解,主要用在@Configuration注解的类里,也可以用在@Component注解的类里。添加的bean的id为方法名;
使用Bean时,即是把已经在xml文件中配置好的Bean拿来用,完成属性、方法的组装;比如@Autowired , @Resource,可以通过byTYPE(@Autowired)、byNAME(@Resource)的方式获取Bean;
注册Bean时,@Component , @Repository , @ Controller , @Service , @Configration这些注解都是把你要实例化的对象转化成一个Bean,放在IoC容器中,等你要用的时候,它会和上面的@Autowired , @Resource配合到一起,把对象、属性、方法完美组装;
@Configuration与@Bean结合使用:@Configuration可理解为用spring的时候xml里面的标签,@Bean可理解为用spring的时候xml里面的标签;