application.properties中配置如下:

demo.name=tom
demo.serverConfig.address=localhost
demo.serverConfig.port=8080
demo.serverConfig.username=bob
demo.serverConfig.password=123

方式1:使用@Value方式

只能拿到一个配置参数

 @RestController  
 public class WebController {  
    /**
    *获取配置的参数,获取不到则使用默认值
    如果不设置默认值又找不到参数,会报错
    */
    
    @Value("${demo.name:aaa}")  
    private String msg;       
 
    @RequestMapping("/index1")   
    public String index1(){  
 
        return "方式一:"+msg;  
 
    } 
    public static String WORKER_RANGE_TIME = "08-20";
 	//注入静态
 	@Value("${worker.range.time:08-20}")
	public  void setWorkerRangeTime(String workerRangeTime) {
		WORKER_RANGE_TIME = workerRangeTime;
	}
}

方式2:使用Environment方式

这种方式可以拿到所有的配置参数,想使用哪个就用key获取

package Solin.controller;  
  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.beans.factory.annotation.Value;  
import org.springframework.core.env.Environment;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RestController;  
  
@RestController  
public class WebController {  
    @Autowired  
    private Environment env;  
      
    @RequestMapping("/index2")   
    public String index2(){  
        return "方式二:"+env.getProperty("demo.name");  
    }  
}

方式3:@ConfigurationProperties(prefix = “”) 注解

这种方式可以根据前缀获取对应参数。
将DemoProperties 使用@Autowired 注入到其他类,其他类就能使用了。

package com.demo.config;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
 
@Component
@ConfigurationProperties(prefix = "demo")
public class DemoProperties {
 
    private ServerConfig serverConfig = new ServerConfig();
 
    public ServerConfig getServerConfig() {
        return serverConfig;
    }
    @Data
    public final class ServerConfig{
        private String address;
        private String port;
        private String username;
        private String password;
    }
 
}

或者

package com.demo.config;
 
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Data
@Component
@ConfigurationProperties(prefix = "demo.serverConfig")
public class DemoProperties {
        private String address;
        private String port;
        private String username;
        private String password;
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐