启动类添加注解@EnableConfigurationProperties
import jnetman.session.SnmpPref;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.cache.annotation.EnableCaching;
import@EnableConfigurationProperties({ SnmpPref.class })
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
application.yml
snmp:0/30 * * * * ?
config:
port: 161
trapsPort: 162
timeout: 3000
maxRetries: 3
isSnmp4JLogEnabled: true
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/***
* Snmp协议相关配置参数
*/
@ConfigurationProperties(prefix = "snmp.config")
public class SnmpPref {
public static String v3User;
public static String password;
public static String privacyDES;
public static int port;
public static int trapsPort;
public static int timeout;
public static int maxRetries;
public static boolean isSnmp4JLogEnabled;
@Value("${snmp.config.v3User}")
public void setV3User(String v3User) {
SnmpPref.v3User = v3User;
}
@Value("${snmp.config.password}")
public void setPassword(String password) {
SnmpPref.password = password;
}
@Value("${snmp.config.privacyDES}")
public void setPrivacyDES(String privacyDES) {
SnmpPref.privacyDES = privacyDES;
}
@Value("${snmp.config.port}")
public void setPort(int port) {
SnmpPref.port = port;
}
@Value("${snmp.config.trapsPort}")
public void setTrapsPort(int trapsPort) {
SnmpPref.trapsPort = trapsPort;
}
@Value("${snmp.config.timeout}")
public void setTimeout(int timeout) {
SnmpPref.timeout = timeout;
}
@Value("${snmp.config.maxRetries}")
public void setMaxRetries(int maxRetries) {
SnmpPref.maxRetries = maxRetries;
}
@Value("${snmp.config.isSnmp4JLogEnabled}")
public void setIsSnmp4JLogEnabled(boolean isSnmp4JLogEnabled) {
SnmpPref.isSnmp4JLogEnabled = isSnmp4JLogEnabled;
}
public static String getUser() {
return v3User;
}
public static String getPassword() {
return password;
}
public static String getPrivacyDES()
{
return privacyDES;
}
public static int getPort() {
return port;
}
public static int getTrapsPort() {
return trapsPort;
}
public static int getTimeout() {
return timeout;
}
public static int getMaxRetries() {
return maxRetries;
}
public static boolean isSnmp4jLogEnabled() {
return isSnmp4JLogEnabled;
}
}
使用方法:
...
this(targetDevice,SnmpPref.getUser(),SnmpPref.getPassword(),SnmpPref.getPrivacyDES());
...