목차
Springboot는 프로 파일을 읽고 정적 변수를 주입합니다
Springboot 정적 속성 주입 솔루션
첫 번째 방법
두 번째 방법
세 번째 방법
Java java지도 시간 Springboot가 사용자 정의 프로 파일을 읽고 정적 변수를 주입하는 방법

Springboot가 사용자 정의 프로 파일을 읽고 정적 변수를 주입하는 방법

May 30, 2023 am 09:07 AM
static springboot pro

Springboot는 프로 파일을 읽고 정적 변수를 주입합니다

mailConfig.properties

#服务器
mail.host=smtp.qq.com
#端口号
mail.port=587
#邮箱账号
mail.userName=hzy_daybreak_lc@foxmail.com
#邮箱授权码
mail.passWord=vxbkycyjkceocbdc
#时间延迟
mail.timeout=25000
#发送人
mail.emailForm=hzy_daybreak_lc@foxmail.com
#发件人
mail.personal=华夏衣裳
#主题
mail.subject=同袍用户激活
#内容模板
mail.html=您的邮箱验证码为:
로그인 후 복사

MailConfig.java

/*
 * @(#)MailConfig.java    Created on 2019年9月11日
 * Copyright (c) 2019 ZDSoft Networks, Inc. All rights reserved.
 * $Id$
 */
package com.hxyc.config.properties;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
 
/**
 * @author huangzy
 * @version $Revision: 1.0 $, $Date: 2019年9月11日 上午10:29:35 $
 */
@Configuration
@PropertySource(value = "classpath:config/mailConfig.properties", encoding = "UTF-8")
@Component
public class MailConfig {
    public static String host;
    public static Integer port;
    public static String userName;
    public static String passWord;
    public static String emailForm;
    public static String timeout;
    public static String personal;
    public static String html;
    public static String subject;
 
    /**
     * @return Returns the host.
     */
    public static String getHost() {
        return host;
    }
 
    /**
     * @param host
     *            The host to set.
     */
    @Value("${mail.host}")
    public void setHost(String host) {
        MailConfig.host = host;
    }
 
    /**
     * @return Returns the port.
     */
    public static Integer getPort() {
        return port;
    }
 
    /**
     * @param port
     *            The port to set.
     */
    @Value("${mail.port}")
    public void setPort(Integer port) {
        MailConfig.port = port;
    }
 
    /**
     * @return Returns the userName.
     */
    public static String getUserName() {
        return userName;
    }
 
    /**
     * @param userName
     *            The userName to set.
     */
    @Value("${mail.userName}")
    public void setUserName(String userName) {
        MailConfig.userName = userName;
    }
 
    /**
     * @return Returns the passWord.
     */
    public static String getPassWord() {
        return passWord;
    }
 
    /**
     * @param passWord
     *            The passWord to set.
     */
    @Value("${mail.passWord}")
    public void setPassWord(String passWord) {
        MailConfig.passWord = passWord;
    }
 
    /**
     * @return Returns the emailForm.
     */
    public static String getEmailForm() {
        return emailForm;
    }
 
    /**
     * @param emailForm
     *            The emailForm to set.
     */
    @Value("${mail.emailForm}")
    public void setEmailForm(String emailForm) {
        MailConfig.emailForm = emailForm;
    }
 
    /**
     * @return Returns the timeout.
     */
    public static String getTimeout() {
        return timeout;
    }
 
    /**
     * @param timeout
     *            The timeout to set.
     */
    @Value("${mail.timeout}")
    public void setTimeout(String timeout) {
        MailConfig.timeout = timeout;
    }
 
    /**
     * @return Returns the personal.
     */
    public static String getPersonal() {
        return personal;
    }
 
    /**
     * @param personal
     *            The personal to set.
     */
    @Value("${mail.personal}")
    public void setPersonal(String personal) {
        MailConfig.personal = personal;
    }
 
    /**
     * @return Returns the html.
     */
    public static String getHtml() {
        return html;
    }
 
    /**
     * @param html
     *            The html to set.
     */
    @Value("${mail.html}")
    public void setHtml(String html) {
        MailConfig.html = html;
    }
 
    /**
     * @return Returns the subject.
     */
    public static String getSubject() {
        return subject;
    }
 
    /**
     * @param subject
     *            The subject to set.
     */
    @Value("${mail.subject}")
    public void setSubject(String subject) {
        MailConfig.subject = subject;
    }
 
}
로그인 후 복사

Springboot 정적 속성 주입 솔루션

첫 번째 방법

springboot 구성 요소 초기화 수명 주기를 통해 속성(객체) 할당

@Component
public class DSHWechatApiUtil extends DSHBaseController {
    @Autowired
    private IThirdPartyAuthDao thirdPartyAuthDao;
    private static IThirdPartyAuthDao staticThirdPartyAuthDao;
    
    @PostConstruct
    public void init() {
        staticThirdPartyAuthDao = thirdPartyAuthDao;
    }
    public static JSONObject getAuthorizerToken(String componentAccessToken, String authorizerAppid, String authorizerRefreshToken) {
        JSONObject returnObject = new JSONObject();
        try {
            if (DSHUtils.isEmpty(componentAccessToken)) {
                componentAccessToken = staticThirdPartyAuthDao.selectWechatValue(DSHConstants.WECHAT_PARAMS.COMPONENT_ACCESS_TOKEN);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return returnObject;
    }
}
로그인 후 복사

DSHWechatApiUtil 도구 구성 요소가 초기화되면 @PostConstruct 주석으로 표시된 메서드가 호출되고 정적 변수에 값이 할당되는 것을 볼 수 있습니다.

두 번째 방법

@Value() 주석

@Value() 주석은 속성을 정적 변수에 주입하지 않습니다. 첫 번째 방법으로 생각하면 이 구성 요소를 초기화하는 방법을 찾아야 합니다. 값.

첫 번째 방법은 확실히 가능합니다. 먼저 속성을 작성한 다음 @Value() 주석을 통해 속성에 값을 할당하고 마지막으로 @PostConstruct 주석을 통해 정적 속성에 값을 할당합니다.

여기서 또 다른 방법을 사용해야 합니다. 여기서의 방법은 set 방법을 통해 값을 할당하는 것입니다. 속성은 정적으로 수정되며 get 메소드도 정적으로 수정됩니다. 그러나 set 메소드를 수정하려면 @Value() 주석을 사용하십시오.

Springboot가 사용자 정의 프로 파일을 읽고 정적 변수를 주입하는 방법

이렇게 해야 주사가 성공할 수 있습니다.

세 번째 방법

세 번째 방법은 두 번째 방법인

@ConfigurationProperties(prefix = ProjectConfig.PROJECT_PREFIX)
public class ProjectConfig {
    public static final String PROJECT_PREFIX = "project";
    /**
     * 系统版本号
     */
    private String version;
    /**
     * 项目名称
     */
    private String name;
    /**
     * 版权年份
     */
    private String copyrightYear;
    /**
     * 实例演示开关
     */
    private static boolean demoEnabled;
    /**
     * 获取地址ip开关
     */
    private static boolean addressEnabled;
    public String getVersion() {
        return version;
    }
    public void setVersion(String version) {
        this.version = version;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCopyrightYear() {
        return copyrightYear;
    }
    public void setCopyrightYear(String copyrightYear) {
        this.copyrightYear = copyrightYear;
    }
    public boolean isDemoEnabled() {
        return demoEnabled;
    }
    public void setDemoEnabled(boolean demoEnabled) {
        ProjectConfig.demoEnabled = demoEnabled;
    }
    public static boolean isAddressEnabled() {
        return addressEnabled;
    }
    public void setAddressEnabled(boolean addressEnabled) {
        ProjectConfig.addressEnabled = addressEnabled;
    }
}
로그인 후 복사

와 유사합니다. 위 코드에서 볼 수 있듯이 set 메서드가 non-static으로 설정되어 있는 한 이 구성 클래스의 정적 속성은 다음과 같습니다. 주입에 성공했습니다.

위 내용은 Springboot가 사용자 정의 프로 파일을 읽고 정적 변수를 주입하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Xiaomi Mi Pad 6과 Pro 중 어느 것을 구매할 가치가 있나요? Xiaomi Mi Pad 6과 Pro 중 어느 것을 구매할 가치가 있나요? Feb 07, 2024 pm 08:36 PM

많은 사용자는 Xiaomi Mi Pad 6 또는 Mi Pad 6 중 어느 것을 구입할 가치가 있는지 확신하지 못합니다. 구성 관점에서 볼 때 Pro의 더 높은 구성을 권장하지만 가격과 자체 예산에 따라 다릅니다. 다른 제품 포지셔닝 그룹도 다릅니다. Xiaomi Mi Pad 6 또는 Pro 중 어느 것을 구입할 가치가 있습니까? 답변: 성능과 카메라 배터리 수명 측면에서 Xiaomi Mi Pad 6 Pro가 더 좋습니다. 1. 프로세서 샤오미 패드 6: 스냅드래곤 870 샤오미 미 패드 6 프로: 더욱 강력해진 1세대 스냅드래곤 8+ 프로세서 2. 배터리 크기 샤오미 미 패드 6: 8840mAh, 67W 2차 충전 샤오미 미 패드 6 프로: 8600mAh, 33W Xiaomi Mi Pad 6을 충전하면 배터리 수명이 더 길어지지만 충전 속도가 느려집니다. 3. Xiaomi Mi Pad 6로 사진 찍기

iPhone 15 Pro Max와 iPhone 14 Pro Max: 비교와 차이점은 무엇인가요? iPhone 15 Pro Max와 iPhone 14 Pro Max: 비교와 차이점은 무엇인가요? Sep 19, 2023 pm 08:29 PM

iPhone 15 Pro 대 iPhone 14 Pro: 사양 비교 iPhone 15 Pro Max와 iPhone 14 Pro Max의 사양 비교는 다음과 같습니다. iPhone 15 Pro Max iPhone 14 Pro Max 디스플레이 크기 6.7인치 6.7인치 디스플레이 기술 Super Retina 2,000니트 크기 6.29x3 .02x0.32인치 6.33x3.06x0.31인치 무게 221g 240g

Xiaomi Mi Band 8pro를 시작하는 방법 Xiaomi Mi Band 8pro를 시작하는 방법 Jan 14, 2024 am 08:51 AM

많은 사용자는 Xiaomi Mi Band 8을 처음 접했을 때 켜는 방법을 모릅니다. 실제로 방법은 매우 간단합니다. USB 데이터 케이블을 찾아 시계를 전원 공급 장치에 연결하기만 하면 됩니다. , 잠시 동안 충전 한 다음 버튼을 눌러 켤 수 있습니다. Xiaomi Mi Band 8pro 켜는 방법 1. 먼저 시계를 설치합니다. 즉, 테마와 스트랩을 양쪽에 연결합니다. 2. 그런 다음 처음으로 시계를 켤 때 충전 케이블을 연결해야 합니다. 연결 방법은 시계 하단에 있습니다. 3. 시계가 진동하여 전원이 켜질 때까지 기다린 다음 휴대폰에 연결합니다. >>>

springboot가 파일을 jar 패키지로 읽은 후 파일에 액세스할 수 없는 문제를 해결하는 방법 springboot가 파일을 jar 패키지로 읽은 후 파일에 액세스할 수 없는 문제를 해결하는 방법 Jun 03, 2023 pm 04:38 PM

Springboot가 파일을 읽지만 jar 패키지로 패키징한 후 최신 개발에 액세스할 수 없습니다. springboot가 파일을 jar 패키지로 패키징한 후 파일을 읽을 수 없는 상황이 발생합니다. 그 이유는 패키징 후 파일의 가상 경로 때문입니다. 유효하지 않으며 읽기를 통해서만 액세스할 수 있습니다. 파일은 리소스 publicvoidtest(){Listnames=newArrayList();InputStreamReaderread=null;try{ClassPathResourceresource=newClassPathResource("name.txt");Input 아래에 있습니다.

SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 SpringBoot와 SpringMVC의 비교 및 ​​차이점 분석 Dec 29, 2023 am 11:02 AM

SpringBoot와 SpringMVC는 모두 Java 개발에서 일반적으로 사용되는 프레임워크이지만 둘 사이에는 몇 가지 분명한 차이점이 있습니다. 이 기사에서는 이 두 프레임워크의 기능과 용도를 살펴보고 차이점을 비교할 것입니다. 먼저 SpringBoot에 대해 알아봅시다. SpringBoot는 Spring 프레임워크를 기반으로 하는 애플리케이션의 생성 및 배포를 단순화하기 위해 Pivotal 팀에서 개발되었습니다. 독립 실행형 실행 파일을 구축하는 빠르고 가벼운 방법을 제공합니다.

맥북에어와 프로의 차이점 맥북에어와 프로의 차이점 Feb 08, 2024 am 09:57 AM

MacBook Air는 Apple 노트북입니다. 많은 사용자가 MacBook Air와 Pro의 차이점을 궁금해합니다. 이 두 노트북은 프로세서 코어, 주요 주파수 및 그래픽 카드 유형에 약간의 차이가 있습니다. MacBook Air와 Pro의 차이점: 1. 다양한 프로세서 코어 및 스레드: MacBook Air의 프로세서에는 듀얼 코어와 4개의 스레드가 있습니다. Pro는 4개의 코어와 8개의 스레드로 MacBook Air보다 강력합니다. 2. 프로세서의 기본 주파수는 다릅니다. MacBook Air 프로세서의 기본 주파수는 1.6GHz입니다. Pro 프로세서의 주요 주파수는 1.4GHz로 Macbook Air보다 약간 낮습니다. 3. 다양한 그래픽 카드: macbookair 채택

Apple의 A17 Pro GPU는 어떤 변화를 가져올까요? Apple의 A17 Pro GPU는 어떤 변화를 가져올까요? Sep 18, 2023 pm 08:53 PM

Apple은 계속해서 기술의 경계를 확장하고 있으며, 혁신의 최신 증거는 Apple A17 Pro GPU의 출시입니다. 이 최첨단 구성 요소는 완전히 재설계된 GPU를 갖추고 있어 성능, 그래픽 및 사용자 경험이 크게 향상됩니다. iPhone 15 Pro와 함께 출시된 Apple A17 Pro GPU는 반도체 엔지니어링의 경이로움입니다. 이 제품은 소형화의 큰 도약을 의미하는 3nm 공정을 사용하여 제작되었으며, 이전보다 더 많은 트랜지스터를 단일 칩에 담았습니다. 이러한 기술적 위업은 더 큰 전력 효율성과 컴퓨팅 성능으로 이어집니다. Apple A17 Pro GPU는 놀라운 그래픽을 제공합니다. A17 Pro 칩의 뛰어난 기능 중 하나는 재설계된 GPU입니다. Apple은 그래픽 성능 최적화에 막대한 투자를 해왔습니다.

springboot에서 application.yml의 값을 얻는 방법 springboot에서 application.yml의 값을 얻는 방법 Jun 03, 2023 pm 06:43 PM

프로젝트에서는 일부 구성 정보가 필요한 경우가 많습니다. 이 정보는 테스트 환경과 프로덕션 환경에서 구성이 다를 수 있으며 실제 비즈니스 상황에 따라 나중에 수정해야 할 수도 있습니다. 이러한 구성은 코드에 하드 코딩할 수 없습니다. 예를 들어 이 정보를 application.yml 파일에 작성할 수 있습니다. 그렇다면 코드에서 이 주소를 어떻게 얻거나 사용합니까? 2가지 방법이 있습니다. 방법 1: @Value 주석이 달린 ${key}를 통해 구성 파일(application.yml)의 키에 해당하는 값을 가져올 수 있습니다. 이 방법은 마이크로서비스가 상대적으로 적은 상황에 적합합니다. 프로젝트, 업무가 복잡할 때는 논리

See all articles