application.yml配置参数
方式一:使用@Value方式(常用)
语法
@Value("${配置文件中的key:默认值}")
@Value("${配置文件中的key}")
方法1:使用的类文件中定义变量,直接使用变量
import org.springframework.beans.factory.annotation.Value;@Value("${baseProperties.factory}")
private String sysFactory;
@Value("${baseProperties.factory-name}")
private String sysFactoryName;public ResponseData test() {System.out.println(sysFactory +";"+sysFactoryName);return new SuccessResponseData();
}
方法2:定义在配置类中,通过引入ApplicationConfig的对象读取数据
import com.holly.api.base.pojo.vo.ApplicationVO;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class ApplicationConfig {@Value("${baseProperties.factory}")private String factory;@Value("${baseProperties.factory-name}")private String factoryName;@Beanpublic ApplicationVO getFactoryInfo() {ApplicationVO vo = new ApplicationVO();vo.setFactory(factory);vo.setFactoryName(factoryName);return vo;}
}
方式二:使用@ConfigurationProperties方式
注意:
1、需要把配置类文件添加进去才可以引入;
@Configuration
2、set和get方法需要保留,set方法不加static
3、Controller类文件读取null,但Service实现类可以取值;(原因不知道)
@Configuration@ConfigurationProperties(prefix = "baseProperties")
public class BaseProperties {private static String factory;private static String factoryName;public static String getFactory() {return factory;}public void setFactory(String factory) {BaseProperties.factory = factory;}public static String getFactoryName() {return factoryName;}public void setFactoryName(String factoryName) {BaseProperties.factoryName = factoryName;}
}
方式三:使用Environment方式
import org.springframework.core.env.Environment;
@Autowiredprivate Environment environment;
public ResponseData test() {System.out.println("env:" + environment.getProperty("baseProperties.factory"));System.out.println("env:" + environment.getProperty("baseProperties.factory-name"));return new SuccessResponseData();
}