【springboot】springboot读取application配置文件

项目需求

项目需要读取application.yml中自定义的配置文件。

跨工程也是可以读取到application.yml文件的配置内容的

读取方式

  1. @Value
  2. Environment

方式一:使用@Value方式(常用)

核心配置文件application.yml内容如下:

# 自定义配置项
uuap:
  server:
    host: 10.12.16.84
    systoken: 39ca7b2c849b85d1
    sysname: sitonya

代码示意:

@Service
public class UuapLoginService {

    public static Logger log = LoggerFactory.getLogger(UuapLoginService.class);

    @Value("${uuap.server.host}")
    public String uuapHostname;

    @Value("${uuap.server.systoken}")
    public String sysToken;

    @Value("${uuap.server.sysname}")
    public String sysName;

public AjaxResult getLogin(UuapUser uuapUser) throws UuapException {
        String systemName = uuapUser.getSystemName();
        AjaxResult ajaxResult = new AjaxResult();

        String url = Constants.HTTP + uuapHostname + Constants.HTTP_SUFFIX;
        String param = systemName + Constants.AMPERSAND +
                Constants.SYSTOKEN + sysToken + Constants.AMPERSAND;
        result = JSONObject.parseObject(SendPostUtil.sendPost(url, param));
        log.info("登录成功");
        return ajaxResult;
    }

注意:在@Value的${}中包含的是核心配置文件中的键名。在Controller类上加@RestController表示将此类中的所有视图都以JSON方式显示,类似于在视图方法上加@ResponseBody。

方式二:使用Environment方式

参考代码:

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("test.msg");
	}
}

注意:这种方式是依赖注入Evnironment来完成,在创建的成员变量private Environment env上加上@Autowired注解即可完成依赖注入,然后使用env.getProperty(“键名”)即可读取出对应的值。

posted @ 2022-11-10 19:26  彬在俊  阅读(630)  评论(0编辑  收藏  举报