When I add the @Component annotation to a class, it creates two beans of the same type (class type) and I get an error that there is no unique bean identifier.
But when I remove the @Component annotation, I only get one bean.
I don't see where the other bean is created.
Here is the class where I add @Component to:
package main.serviceconfiguration;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component
/* prefix of key in application.properties*/
@ConfigurationProperties("")
public class ServiceConfiguration {
/* declare key suffixes here */
/* Then add getters and setters for the keys' values */
}
Where I @Autowire the bean:
@Controller
@Service
@Configuration
@RequestMapping("/users")
@EnableConfigurationProperties(ServiceConfiguration.class)
public class UserRestController {
@Autowired
private UserRepository repo;
@Autowired
private ServiceConfiguration config;
...
}
However, in the package explorer of my Eclipse IDE, I see that under Spring Elements -> Beans -> @Component annotation, that there are two beans of type main.serviceconfiguration.ServiceConfiguration
one is called serviceConfiguration
and the other is called main.serviconfiguration.ServiceConfiguration
The error from log:
No qualifying bean of type [main.serviceconfiguration.ServiceConfiguration] is defined: expected single matching bean but found 2: serviceConfiguration,main.serviceconfiguration.ServiceConfiguration