Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Attribute 'local' is not allowed to appear in element 'ref' in Spring 4.1.5

I am currently going through Mkyong Spring 3.0 tutorial.

He goes on to clarify these 2 basic things.
1. Bean in different XML files

If you are referring to a bean in different XML file, you can reference it with a ‘ref‘ tag, ‘bean‘ attribute.

2. Bean in same XML file

If you are referring to a bean in same XML file, you can reference it with ‘ref‘ tag, ‘local‘ attribute.

The only thing I can make out is that the local attribute is not supported any more in version 4.1.5. For the timebeing, I have sticked to the

<ref bean="thebeaninstance"/>

and it works for both. <ref bean="..."> requires only it to be in the same context, or in a parent context.

But i am looking for something by which i will be able to resolve the difference once if somehow i encounter same ids in 2 different beans, and wish to refer to the one defined in different XML, since preference goes to the one defines in the same XML. Please suggest.

like image 988
Farhan Shirgill Ansari Avatar asked Mar 14 '15 12:03

Farhan Shirgill Ansari


1 Answers

Spring dropped support for the local ref elements in version 4.0.1. This is from the notes:

Removed the ref 'local' attribute in spring-beans-4.0.xsd since 'local' lost its differentiating role to a regular bean ref back in the 3.1 days when we started allowing for the same bean id to reappear in a different beans section of the same configuration file (with a different profile). Issue: SPR-10437

See here: link

Basically, you should use the bean element.

like image 84
Karim Vite Avatar answered Sep 23 '22 13:09

Karim Vite