[SPRING] Spring : String Bean을 생성자에 삽입하는 방법은 무엇입니까?
SPRINGSpring : String Bean을 생성자에 삽입하는 방법은 무엇입니까?
나는 클래스를 가지고있다 Config :
Config.java
public class Config {
private final String p = "Prop";
@Bean
public String getP(){return p;}
}
어떻게 이것을 생성자에 주입할까요?
public class SomeC {
private String p;
public SomeC(String p) {
this. p = p;
}
}
이 String p가 Config의 값을 주입하도록합니다. 그게 가능하니?
해결법
-
==============================
1.빈의 이름을 정한 다음, autowiring으로 그 이름을 참조 할 때 @Qualifier 어노테이션을 사용해야한다.
빈의 이름을 정한 다음, autowiring으로 그 이름을 참조 할 때 @Qualifier 어노테이션을 사용해야한다.
예:
Config.java
public class Config { private final String p = "Prop"; @Bean(name="p") public String getP(){return p;} }
SomeC.java
public class SomeC { private String p; @Autowired public SomeC(@Qualifier("p") String p) { this. p = p; } }
-
==============================
2.다음과 같이 @Autowired를 사용해야합니다.
다음과 같이 @Autowired를 사용해야합니다.
@Autowired public SomeC(String p){ this.p = p; }
또는 이와 같이 :
public class SomeC { @Autowired private String p; }
나는 두 번째 접근법을 선호한다. 그러나 이것은 의존성을 외부에서 볼 수 없으므로 클래스를 테스트하기가 더 어렵 기 때문에주의해서 사용해야한다.
from https://stackoverflow.com/questions/41570821/spring-how-to-inject-a-string-bean-to-the-constructor by cc-by-sa and MIT license