- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有以下配置文件
@Configuration
@ComponentScan(basePackages = "com.foo")
@EnableTransactionManagement
public class AppSpringConfiguration {
@Autowired
private Environment env;
@Autowired
private ApplicationContext appContext;
@Value("#{cvlExternalProperties['dbDriverClassName']}")
private String dbDriverName;
@Bean
public PropertiesFactoryBean cvlExternalProperties() {
PropertiesFactoryBean res = new PropertiesFactoryBean();
res.setFileEncoding("UTF-8");
res.setLocation(new FileSystemResource(env.resolvePlaceholders("${MY_ENV_VAR}") + "external.properties"));
return res;
}
@Bean
public BasicDataSource datasource() {
BasicDataSource basicDataSource = new BasicDataSource();
basicDataSource.setDriverClassName("myDriverClassName");
basicDataSource.setUrl("MyDbUrl");
basicDataSource.setUsername("myUser");
basicDataSource.setPassword("myPass");
return basicDataSource;
}
}
在外部属性文件中我已经
dbUrl=jdbc:mysql://localhost:3306/someDb
dbUser=someUser
dbPassword=somePass
dbDriverClassName=com.mysql.jdbc.Driver
我可以通过什么方式使用 datasource() 方法中的 cvlProperties?我试过了
env.getProperty("dbDriverClassName")
env.getProperty("#cvlProperties['dbDriverClassName']")
但我无法检索属性。字段 dbDriverName 已正确填写,这意味着 bean 声明是正确的。我想使用 PropertyFactoryBean 类,因为这样我可以指定要使用的编码。
如果我在配置类顶部使用以下注释
@PropertySource("file:${MY_ENV_VAR}/external.properties")
我可以使用这段代码检索属性
env.getProperty("dbDriverClassName")
但是PropertySource注释使用的编码是Windows默认的,对我来说是不正确的。
你能帮我吗?
最佳答案
目前的解决方案(我不太喜欢)是使用注释@Value来声明属性
@Value("#{cvlExternalProperties['dbDriverClassName']}")
private String dbDriverClassName;
然后在java类中使用它
关于java - Spring Java 配置。配置文件中PropertiesFactoryBean的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35348695/
我只需要读取MyServiceImpl.java类中的menu.properties文件这些值不是特定于环境的。 menu.properties ---------------- menu.optio
我希望公开一个 Properties Spring bean,其值已通过典型的属性扩展机制进行了扩展。我正在使用 Spring 3.1。让我离题。 给定以下属性文件: server.host=myho
我无法让 PropertyPlaceholderConfigurer 在我当前的配置中工作。在我的 applicationContext.xml 中给出以下代码块:
spring 有两种方法可以使用 propertiesfactorybean 或 propertyplaceholderconfigurer 加载属性文件。 您能解释一下它们之间的区别以及何时使用什么
我的项目有一个依赖项,它需要设置一个可由@Value 注释读取的属性对象: @Value("#{myProps['property.1']}") 要在 JavaConfig 中执行此操作,我使用以下内
我是一名优秀的程序员,十分优秀!