当前位置 博文首页 > 刘之西东:Solon Aop 特色开发(1)注入或手动获取配置

    刘之西东:Solon Aop 特色开发(1)注入或手动获取配置

    作者:刘之西东 时间:2021-05-23 18:20

    Solon,更小、更快、更自由!本系列专门介绍Solon Aop方面的特色:

    • 《Solon Aop 特色开发(1)注入或手动获取配置》
    • 《Solon Aop 特色开发(2)注入或手动获取Bean》
    • 《Solon Aop 特色开发(3)构建一个Bean的三种方式》
    • 《Solon Aop 特色开发(4)Bean 扫描的三种方式》
    • 《Solon Aop 特色开发(5)切面与环绕拦截》
    • 《Solon Aop 特色开发(6)新鲜货提取器,提取Bean的函数进行定制开发》

    常规操作,先启动 Solon

    public class App{
        public void main(String[] args){
            Solon.start(App.class, args);
        }
    }
    

    一、如何通过注入获得配置?

    • 注入到字段
    @Service
    public class DemoService{
        //注入值
        @Inject("${track.url}")
        String trackUrl;
        
        //注入配置集合
        @Inject("${track.db1}")
        Properties trackDbCfg;
        
        //注入Bean(根据对应的配置集合生成并注入)
        @Inject("${track.db1}")
        HikariDataSource trackDs;
    }
    
    • 注入到配置器的构建参数(与注入字段的方式差不多)
    @Configuration
    public class DemoConfig{
        @Bean
        public DataSource db1(@Inject("${track.db1}") HikariDataSource ds) {
            return ds;
        }
    }
    

    二、如何手动获得配置?

    • 给字段赋值
    public class DemoService{
        //获取值
        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);
        }
    }
    

    附:Solon 是什么?

    一个插件式的 Java 微型基础开发框架。支持Web、Job、Remoting、MicoService等开发。

    项目地址:

    • Gitee:https://gitee.com/noear/solon
    • Github:https://github.com/noear/solon

    附:入门示例

    • Solon 入门教程示例:https://gitee.com/noear/solon_demo
    • Solon Rpc 入门教程示例:https://gitee.com/noear/solon_rpc_demo
    • Solon Cloud 入门教程示例:https://gitee.com/noear/solon_cloud_demo
    • Solon 进阶教程示例:https://gitee.com/noear/solon_advance_demo
    bk
    下一篇:没有了