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}")
仍然可以不修改正常运行。
初始化和销毁
评论