adrian opened SPR-6736 and commented
I'm using Struts 1 with the Spring DelegatingTilesRequestProcessor plugin.
I define my actions as spring beans and would like to use @Component
annotation and no XML configuration.
My problem is that an action path must correspond to the same Spring bean id.
And I can have the same spring bean used for multiple actions.
i.e /charge/view and /charge/save should map to the same bean.
I cannot do it with @Component
annotation alone, and would need a @Alias
or @Role
annotation.
For instance something like :
@Component("/charge/view")
@Roles({`@Role`("/charge/remove"),
@Role("/charge/edit"),
@Role("/charge/save")})
public class EditChargeClienteleAction extends MappingDispatchAction {
Affects: 3.0 GA
Reference URL: http://forum.springsource.org/showthread.php?t=83133
16 votes, 12 watchers
Comment From: spring-projects-issues
Gergő Takács commented
It would be great for me too
Comment From: spring-projects-issues
Stevo Slavić commented
This is already supported outside of XML, albeit not with @Role
/@Roles
but with Spring Java @Configuration
and bean aliasing (see here for more).
Comment From: spring-projects-issues
Hendy Irawan commented
+1 for this. outside Spring MVC bean aliasing is also useful.
@Configuration
is a workaround, the same aliasing mechanism should be supported by @Component
/@Service
etc. (by accepting String[] instead of just String, or adding 'aliases')
Comment From: spring-projects-issues
M. Justin commented
Agreed that @Component
/@Service
, etc. beans should support defining the alias name without using @Configuration
.
Comment From: spring-projects-issues
Bulk closing outdated, unresolved issues. Please, reopen if still relevant.
Comment From: foal
Still relevant
Comment From: itsLucario
This issue is open from 2010. Spring must look into this feature request.
Comment From: mauromol
I also think this is a missing feature in Spring annotations. Probably an alias
property of @Component
or an @Alias
annotation could do the trick?
Comment From: AdrianLopez1994
Still relevant.
Comment From: fibsifan
+1
Comment From: snicoll
Thanks for the suggestion but, after a careful consideration, we're going to decline this. @Component
is a simple way of registering new beans in the bean factory that is decoupled from BeanDefinition
. As such, adding an alias to it does not really make sense.
If you need to register a bean with multiple aliases, please use the @Configuration
model with @Bean
that provides a way for you to provide several bean names.