>Java >java지도 시간 >springBoot에서 @Value 사용 문제를 해결하는 방법

springBoot에서 @Value 사용 문제를 해결하는 방법

王林
王林앞으로
2023-05-14 18:55:061460검색

@Value를 사용하여 값을 얻을 때 발생하는 문제

springBoot 프로젝트에서는 관리를 용이하게 하기 위해 일반적으로 구성 파일에 일부 경로나 리소스를 작성합니다.

단, 구하는데 문제가 있을 수 있습니다.

file.uploadFolder=E://upload/

1. 일반적으로 필드를 정의합니다

값을 얻으려면 위의 @Value("${name}")를 사용하세요

@Value("${file.uploadFolder}")
    private String uploadFolder;

2. 그것은 도구 클래스에 있습니다

그러나 필드는 정적 변수로 수정됩니다. 이 방법을 사용하면 값을 얻을 수 없으며 우리가 얻는 것은 null입니다.

그래서 값을 얻는 방법을 아래와 같이 바꿔야 합니다. set 메소드에서 static을 사용하지 않는 것을 기억하세요! ! !

private static String uploadFolder;
public static String getUploadFolder() {
        return uploadFolder;
    }
    @Value("${file.uploadFolder}")
    public  void setUploadFolder(String uploadFolder) {
        Base64Utils.uploadFolder = uploadFolder;
    }

3. @Component 또는 기타 주석을 도구 클래스

에 추가하여 Spring에서 관리할 수 있도록 하는 것이 가장 좋습니다.

springBoot가 @Value를 사용할 때 발생한 oolong을 기억하세요

코드를 먼저 보세요

server.port=8007
#mysql配置
url=jdbc:mysql://localhost:3306/lzy_zyg?useUnicode=true&characterEncoding=UTF-8
username=root
password=root

application.properties에 채워져 있는 관련 설정 정보인데, mysql 설정을 외부 설정 정보로 사용합니다.

그럼 필요한 곳에 아래와 같이 사용하세요

@Configuration
public class JfinalDb
{
    @Value("${url}")
    private String dbUrl;
    @Value("${username}")
    private String dbUName;
    @Value("${password}")
    private String dbPwd;
...
}

사용시 아주 이상한 문제가 발생합니다. 즉, 네이밍 설정의 사용자 이름과 비밀번호도 맞고 로컬 연결도 맞지만 연결 인증 실패 오류가 뜹니다 항상 보고되며 사용자 이름은 루트가 아닙니다.

드디어 dbUName을 인쇄해 보니 전혀 루트가 아니고 내 호스트 이름이었습니다!

여기에서는 원하는 결과를 얻을 수 없으므로 application.properties 파일에서 사용자 이름 이름을 사용자 정의하지 마십시오.

위 내용은 springBoot에서 @Value 사용 문제를 해결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제