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);
    }
}
posted @ 2022-01-16 18:44  带刺的坐椅  阅读(154)  评论(0编辑  收藏  举报