Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

How Springboot reads custom pro files and injects static static variables

2025-02-24 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Internet Technology >

Share

Shulou(Shulou.com)05/31 Report--

In this article Xiaobian describes in detail for you "Springboot how to read custom pro files into static static variables", detailed content, clear steps, details handled properly, I hope that this "Springboot how to read custom pro files into static static variables" article can help you solve doubts, the following follow the editor's ideas slowly in-depth, let's learn new knowledge.

Springboot reads pro files and injects static static variables

MailConfig.properties

# Server mail.host=smtp.qq.com# port number, mail.port=587# mailbox account number, mail.userName=hzy_daybreak_lc@foxmail.com# mailbox authorization code mail.passWord=vxbkycyjkceocbdc# time delay mail.timeout=25000# sender mail.emailForm=hzy_daybreak_lc@foxmail.com# sender mail.personal= Huaxia clothes # theme mail.subject= robe user activation # content template mail.html= your mailbox verification code is:

MailConfig.java

/ * * @ (#) MailConfig.java Created on September 11, 2019 * 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: 10:29:35 $* / @ Configuration@PropertySource (value = "classpath:config/mailConfig.properties", encoding = "UTF-8") @ Componentpublic 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 static attribute injection solution the first way

Property (object) assignment through springboot component initialization lifecycle

@ Componentpublic 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;}}

As you can see, when the DSHWechatApiUtil utility component initializes, the @ PostConstruct annotation method is called to assign values to the static variables.

The second way

Through @ Value () annotations

The @ Value () annotation does not inject properties into static variables, so by thinking in the first way, we must find a way to assign values when the component is initialized.

The first way is certainly possible, by writing a property, then assigning it with the @ Value () annotation, and finally assigning the value to the static property through the @ PostConstruct annotation.

Here we are going to take another approach, which is through the set method to assign values. The attribute is static-decorated, and the get method is also static-decorated, but the set method cannot be static-decorated, using the @ Value () annotation to modify the set method.

So we can successfully inject.

The third way

The third way is similar to the second one.

@ ConfigurationProperties (prefix = ProjectConfig.PROJECT_PREFIX) public class ProjectConfig {public static final String PROJECT_PREFIX = "project"; / * system version number * / private String version; / * * Project name * / private String name; / * * copyright year * / private String copyrightYear / * instance demo switch * / private static boolean demoEnabled; / * get the address ip switch * / 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;}}

As in the code above, as long as the set method is set to non-static, the static properties of the configuration class can be successfully injected.

Read this, the "Springboot how to read custom pro files into static static variables" article has been introduced, want to master the knowledge of this article also need to practice and use to understand, if you want to know more about the article, welcome to follow the industry information channel.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Internet Technology

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report