Fix priority semantic

Commit 5fe8f52 introduced a support for @Priority as an alternative to
@Primary but it broke the semantic of the priority value. This commit
fixes this inconsistency.

As for @Order, the lowest value means the highest priority so if
several beans are candidates for injection, the one having the lowest
value will be used.

Issue: SPR-10548
This commit is contained in:
Stephane Nicoll
2014-07-08 10:26:03 +02:00
parent ea16ce0aa0
commit b78b2e9a03
2 changed files with 8 additions and 6 deletions

View File

@@ -1399,7 +1399,7 @@ public class DefaultListableBeanFactoryTests {
lbf.registerBeanDefinition("bd2", bd2);
thrown.expect(NoUniqueBeanDefinitionException.class);
thrown.expectMessage(containsString("Multiple beans found with the same priority"));
thrown.expectMessage(containsString("500")); // conflicting priority
thrown.expectMessage(containsString("5")); // conflicting priority
lbf.getBean(TestBean.class);
}
@@ -1613,7 +1613,7 @@ public class DefaultListableBeanFactoryTests {
// expected
assertNotNull("Exception should have cause", ex.getCause());
assertEquals("Wrong cause type", NoUniqueBeanDefinitionException.class, ex.getCause().getClass());
assertTrue(ex.getMessage().contains("500")); // conflicting priority
assertTrue(ex.getMessage().contains("5")); // conflicting priority
}
}
@@ -2887,10 +2887,10 @@ public class DefaultListableBeanFactoryTests {
}
@Priority(500)
@Priority(5)
private static class HighPriorityTestBean extends TestBean {}
@Priority(5)
@Priority(500)
private static class LowPriorityTestBean extends TestBean {}