我的问题如下:假设您有一个类人,其中有2个实例Adam和Jacobs。所以,你有另外两个班级,叫做学校和大学。我的任务是通过注入雅各布斯在学校学习的定义,亚当也是一名大学生。
如何使用Spring框架实现它?(欢迎以书面方式回答:)
发布于 2018-11-01 15:40:44
我认为您要做的是在不同的组件中注入相同类型的不同实例。您可以通过使用spring @限定符来做到这一点。我为你分享的问题勾勒出了一个解决方案。
上了人课。
public class Person
{
private String name;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
}以及每个人的配置。
@Configuration
public class DemoConfig {
@Bean
public Person adam() {
return new Person("Adam");
}
@Bean
public Person jacobs() {
return new Person("Jacobs");
}
}学校的班级。
@Component
public class School {
private Person jacobs;
public School(@Qualifier("jacobs") Person jacobs) {
this.jacobs = jacobs;
}
public String personName() {
return jacobs.getName();
}
}大学班级与学校班级相似,但将限定词名改为"adam“。
下面是对您的需求的测试。
@RunWith(SpringRunner.class)
@SpringBootTest
public class DemoApplicationTests {
@Autowired
private School school;
@Autowired
private University university;
@Test
public void testPersonDependencies() {
assertThat(school.personName()).isEqualTo("Jacobs");
assertThat(university.personName()).isEqualTo("Adam");
}
}https://stackoverflow.com/questions/53102476
复制相似问题