We are working to make the source you created with Spring Boot work.
If you have a source similar to the one below, Spring will send the application-config.xml to
<beans>
<bean id="testService" class="test.service.impl.TestServiceAimpl"/>
</beans>
I decided which class to use, but I didn't know how to set it up for Spring Boot.
I would like to determine the class by writing something in application.properties, but what kind of description do you need?
Thank you for your cooperation.
test.controller
T TestController.java
test.service
T TestService.java (interface)
test.service.impl
T TestServiceAimpl.java (TestService Interface Implementation Class A)
T TestServiceBImpl.java (TestService Interface Implementation Class B)
TestController.java Excerpt
@Autowired
private TestService testService;
TestServiceAimpl.java Excerpt
@Service//@Component is better?
@Profile("TestServiceA")//Added
public class TestServiceAImplementations TestService
TestServiceBImpl.java Excerpt
@Service//@Component is better?
@Profile("TestServiceB")//Added
public class TestServiceBImplifications TestService
application.properties excerpt
spring.profiles.active=TestServiceA//Added
Thank you for your comment, I was able to achieve the behavior I originally expected above.
Also, we considered adding a Configuration class as you commented, but in that case, testServiceA (if spring.profiles.active=A), TestServiceAimpl, and TestServiceBimpl in the Configuration class, the NoUniqueBeanDefinitionException was thrown.
spring
@Configuration
public class AppConfig {
@ Bean TestService testService(){
return new TestServiceImpl();
}
}
The class should be under component scanning.The method name will be beanid
© 2024 OneMinuteCode. All rights reserved.