c3p0config.properties 下有
jdbcUrl = "jdbc:mysql://localhost:3306/myproject1_simplesite"
driverClass = "com.mysql.jdbc.Driver"
user = "root"
password = "root"
显示地使用 javaconfig 来配置 Dao
@Configuration
public class DaoConfig {
@Bean(name = "dataSource")
public DataSource c3p0DataSource(){
ComboPooledDataSource c3p0dataSource = new ComboPooledDataSource();
c3p0dataSource.setJdbcUrl(#{我该如何表达 c3p0config.properties 中的 jdbcurl});
}
@Bean(name = "userDao")
public UserDao userDao(){
}
}
我知道 SpEL 允许#{beanid.attr}
但现在我只有一个 properties 文件,但能否在不创建 bean 的前提下用 SpEL 明确表达 properties 中的属性值?
谢谢
1
zjp 2018-05-29 01:09:37 +08:00 via Android
@value 了解一下,还有 propertiesBean 适合注入整个配置文件
推荐一本《 spring 实战》 |
2
Newyorkcity OP @zjp 我看的就是《 spring 实战》.. 感觉并不是很友好, 比如实现同一个功能的不同操作,有些设置是不同操作里通用的,但它在第一个操作里讲了,后面那个操作就不提了..而且这本书第三章我看来看去也没看到怎么导入 properties 文件..
你说用 @value 注解...第一个 @value 应该是自动扫描装配里采用的吧,我这里问的问题是显示 javaconfig 配置啊.. 另一个书上举了这么一个例子,说可以用 SystemProperties 对象引用系统属性 我翻遍上下文却也没找到它在哪里定义的 ystemProperties 对象,又是何时在 ystemProperties (我还不知道这是不是个 properties 文件)里添加了 disc.title 的值... 它在上面讲解『声明属性源并用 Spring 的 Environment 来检索属性』时倒是用 @PropertySource 加载了一个 app.properties 的文件,里面有 disc.title....那它的意思就是 @PropertySource 可以添加 properties 文件的内容到 SystemProperties 中,之后使用 properties 文件中的属性就用 SystemProperties?文章中也没有明示.. |
3
omengye 2018-05-29 09:00:44 +08:00
1. 配置 spring.datasource.driverClassName = ... spring.datasource.url = ... 到 application.properties, spring 会自动识别
2. 如果一点都不想用 spring 那一套去读配置的话, 可以看看 java.util.Properties 的 load 方法 |
4
zhaogaz 2018-05-29 10:43:16 +08:00
value 惨遭 at,哈哈哈。
是这样的,spring 自带 properties 扫描的工具,可以吧 properties 获取到统一处理。大概是叫 PropertiesFactoryBean 我不知道这算不算你说的创建 bean,我个人觉得只是配置一下自带的 bean。 再一点,spring 实战 我也看过了。基本是官方手册的简单汉化版。 官方手册写的东西多而全。有空的话可以看看。 关于分割线后面的内容,是这样的,spring 这种东西就是在业务推动下产生的一种抽象,你脱离了实际项目当然弄不明白了。 我也是初学者,算不上掌握,目前在看官方的说明书。 入门的项目也没什么推荐的,想要入门的话随便哪个都行吧。 我也找过 spring 项目,基本没有让人满意的,很多人推荐自己的,我看了写的都不行。一方面是太旧了,另一方面是没有展示 spring 的各种特性。我希望有能展示 spring 各方面特性、功能、特点、习惯用法的项目,反正我是没找到。。。可能也是搜索方式不对。 |