用过Sring框架的同学应该都知道,最初对对象的管理都是通过xml配置文件进行配置的,随着Spring注解形式的流行和使用,越来越多的公司和同学都渐渐采用注解方式进行开发了,对于配置文件这块也是趋于使用java配置方式。
虽然基于注解开发的方式是一种趋势,但仍存在xml配置方式,同时也存在着注解方式和xml配置方式共存的场景,笔者目前所在的公司就是这种场景,接下来就简单说一下@Bean和xml创建对象的差异和规则,算是一种记录吧!
xml配置创建对象的形式
<bean id="对象变量名(自定义且不能重名)" class="所需创建对象的全类路径名"></bean>
@Bean注解创建对象
@Bean(name="userTest")
public User user() {
return new User();
}
即在一个普通的方法上面添加@Bean注解即可,会创建一个User对象,对象变量名为userTest,如果不在@Bean注解上设置name名称,默认的对象名就是方法名称
前面提到了如果在xml配置文件中不允许存在相同id的bean,启动会报错,但有种特殊情况,即Bean注解和xml配置文件共同存在的情况下,如果@Bean注解创建对象的变量名和xml配置文件中配置的bean对象的id相同,那么Spring会优先采用xml配置文件中的作为对象管理,从而忽略Bean注解创建的对象