주석을 통해 Spring Bean을 구성할 때 외부 소스의 속성 값을 삽입해야 합니다. 이 기사에서는 주석을 사용하여 구성된 Bean에 속성 값을 주입하는 방법에 대한 질문을 다룹니다.
제공된 코드는 Spring XML 파일에서 명시적인 정의 없이 주석을 통해 구성된 Spring Bean인 PersonDaoImpl을 보여줍니다. 그러나 app.properties의 속성을 이 bean에 주입해야 할 필요성이 발생합니다.
전통적으로 이는 XML 파일에서 속성을 정의하고 PropertyPlaceholderConfigurer를 사용하여 외부 파일에서 값을 읽는 방식으로 이루어졌습니다. 그러나 주석을 통해 정의된 Bean에서는 이 접근 방식이 불가능합니다.
이 문제를 해결하기 위해 Spring은 Spring 3에서 EL 지원을 사용하는 솔루션을 제공합니다. 다음 코드는 아이디어를 보여줍니다.
@Repository("personDao") public class PersonDaoImpl extends AbstractDaoImpl implements PersonDao { @Value("#{systemProperties.databaseName}") public void setDatabaseName(String dbName) { ... } }
이 예에서 systemProperties는 시스템 속성에 대한 액세스를 허용하는 암시적 개체입니다. 그런 다음 dbName에는 시스템 속성 DatabaseName의 값이 주입됩니다.
마찬가지로 EL 표현식을 사용하여 다른 Bean을 주입할 수 있습니다. 예를 들면 다음과 같습니다.
@Value("#{strategyBean.databaseKeyGenerator}") public void setKeyGenerator(KeyGenerator kg) { ... }
여기에서 strategyBean은 Spring 빈으로 가정되며 해당 데이터베이스KeyGenerator 속성은 현재 빈에 주입됩니다.
Spring에서는 또한 속성 개체:
@Value("#{myProperties['github.oauth.clientId']}") private String githubOauthClientId;
이 예에서는 myProperties 개체의 속성이 필드에 삽입됩니다. githubOauthClientId.
위 내용은 주석이 달린 Spring Bean에 외부 소스의 속성을 주입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!