项目需求
项目需要读取application.yml
中自定义的配置文件。
跨工程也是可以读取到application.yml文件的配置内容的
读取方式
@Value
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(“键名”)即可读取出对应的值。