Solon 开发,一、注入或手动获取配置
1、如何通过注入获得配置?
- 注入到字段
@Service
public class DemoService{
//注入值(带默认值:demoApi),并开启自动更新(注意:如果不是单例,请不要开启自动刷新)
@Inject(value="${track.name:demoApi}", autoRefreshed=true)
String trackName;
//注入值(没有时,不覆盖字段初始值)
@Inject("${track.url}")
String trackUrl = "http://x.x.x/track";
//注入配置集合
@Inject("${track.db1}")
Properties trackDbCfg;
//注入Bean(根据对应的配置集合自动生成并注入)
@Inject("${track.db1}")
HikariDataSource trackDs;
public DemoService(){
//注入的配置,不能在构造函数里使用。在生命周期时,构建先于注入
}
@Init
public void init(){
//注入的配置,需要进一步做初始化,请在处理
}
}
- 注入到配置器的构建参数(与注入字段的方式差不多)
@Configuration
public class DemoConfig{
@Bean
public DataSource db1(@Inject("${track.db1}") HikariDataSource ds) {
return ds;
}
}
注意一下,配置名是通过${...}
模式去表示的。
2、如何手动获得配置?
- 给字段赋值
public class DemoService{
//获取值(带默认值:demoApi)
String trackName = Solon.cfg().get("track.name", "demoApi");
//获取值
String trackUrl = Solon.cfg().get("track.url");
//获取配置集合
Properties trackDbCfg = Solon.cfg().getProp("track.db1");
//获取bean(根据配置集合自动生成)
HikariDataSource trackDs = Solon.cfg().getBean("track.db1", HikariDataSource.class);
}
- 构建Bean给配置器用
@Configuration
public class DemoConfig{
@Bean
public DataSource db1() {
return Solon.cfg().getBean("track.db1", HikariDataSource.class);
}
}