spring的配置问价 application.xml中,固定bean的id怎么配置?

图片说明

就像 messageSource,exceptionHandler,loadConstant这几个bean的id是参考哪里写的?

id属性允许我们指定一个Bean的id,并且它在XML DTD中作为一个真正的XML元素的ID属性被标记,所以XML解析器能够在其他元素指向它的时候做一些额外的效验;name属性则与id相反,如果我们在开发中有必要使用一些非法的字符,那么我们可以通过name属性指定一个或多个id。当我们指定多个id时要用逗号(,)或者(;)来进行分隔。

用法如下:Person p = (Person) a.getBean("person"); 或改写为Person p = (Person) a.getBean("user");

id 的名称你可以随意写,但是你在注入的时候就要注意了,@Resource 就要求你的参数名称和你的bean id一样;
例如

@Resource
private ObjectA a;

如果使用@Autowired来注入的话,对bean的名称不做要求,随意写什么都可以

bean中的id属性是:一个对象的引用
例如:
/**
其实就是相当于:HelloWorld helloWorld = new HelloWorld();
通俗一点讲:就是通过new出来的对象,spring中就不需要你去new出一个对象,
而spring容器会自动帮你new。
名字可以随便取,但是官方规定最好是按照你对应的类来取名。
**/

你可以试试改变这几个值看看会不会报错,注意引用到这几个id的地方也要改成你要改变的值,或者你不改变你调用这些的地方,就改这个bean里的id,有的时候你需要报几个错误才能明白他是干嘛用的,因为异常原因就是答案

这里id实际上就是类的实例化对象,关键的是其对应的class属性,看是指向的哪一个类。

id 的名称你可以随意写,但是你在注入的时候就要注意了,@Resource 就要求你的参数名称和你的bean id一样;