1、创建静态属性使用的类
/**
* 被注入到静态属性的service
*/
@Service
public class StaticService {
public void test(){
System.out.println("StaticService test方法被调用");
}
}
2、创建需要注入静态属性的类
/**
* 需要注入静态属性的类
*/
@Service
public class TestService {
private static StaticService staticService;
@Autowired
public void setStaticService(StaticService staticService) {
TestService.staticService = staticService;
}
public void test(){
System.out.println("调用静态属性中的方法");
staticService.test();
System.out.println("结束");
}
}
3、创建测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class)
public class TestServiceTest {
@Autowired
private TestService testService;
@Test
public void test1() {
testService.test();
}
}
结果:
调用静态属性中的方法
StaticService test方法被调用
结束
原理:
spring会扫描@Autowired注解,发现注解在TestService上的setStaticService方法,于是spring会调用这个方法来注入,在setStaticService方法中。将注入的对象设置到类的静态属性中,以此达到所需要的效果。