java - Is spring getbean case sentitive or not? -


when use getbean("test")

i have class like

@component public class test { } 

can bean loaded?

getbean() is case sensitive, spring uses custom bean naming strategy @component , @bean classes. see 4.10.5 naming autodetected components:

when component autodetected part of scanning process, bean name generated beannamegenerator strategy [...]. default, spring stereotype annotation (@component, @repository, @service, , @controller) contains name value thereby provide name corresponding bean definition.

if such annotation contains no name value or other detected component (such discovered custom filters), default bean name generator returns uncapitalized non-qualified class name.

and @configuration/@bean see 4.12.4.5 customizing bean naming:

by default, configuration classes use @bean method's name name of resulting bean. functionality can overridden, however, name attribute.

back question. because class not following java naming conventions (camel-case names) spring uses unusual name bean, work:

getbean("test") 

however if use expected naming (@component class test { }), must use lower-case identifiers:

getbean("test") 

moreover if name more complex, uncapitalized camel-case syntax applies (continuing quote spring documentation):

[...] example, if following 2 components detected, names mymovielister , moviefinderimpl:

@service("mymovielister") public class simplemovielister {   // ... }  @repository public class moviefinderimpl implements moviefinder {   // ... } 

Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -