spring- 注入配置

classpath:/logo.txt表示在classpath中搜索logo.txt文件,
然后,我们直接调用Resource.getInputStream()就可以获取到输入流
也可以在IOC容器启动(配置)类中 添加bean @PropertySource("config.file")
第三种方式是通过创建一个javabean来获取其持有的配置 注入后,
注:在 IOC启动(配置类) 使用@PropertySource注入的配置 会成为全局配置,可以被任何bean引用获取注入,所以此处没有@propertySource
然后,在需要读取的地方,使用#{smtpConfig.host}注入:
注意观察#{}这种注入语法,它和${key}不同的是,#{}表示从JavaBean读取属性。"#{smtpConfig.host}"的意思是,从名称为smtpConfig的Bean读取host属性,即调用getHost()方法。一个Class名为SmtpConfig的Bean,它在Spring容器中的默认名称就是smtpConfig,除非用@Qualifier指定了名称。
使用一个独立的JavaBean持有所有属性,然后在其他Bean中以#{bean.property}注入的好处是,多个Bean都可以引用同一个Bean的某个属性。例如,如果SmtpConfig决定从数据库中读取相关配置项,那么MailService注入的@Value("#{smtpConfig.host}")仍然可以不修改正常运行。
初始化和销毁











评论