初学 Spring 的小问题,要给 bean 注入值,键值对保存在一个 properties 文件里,如何导入?

2018-05-29 00:58:04 +08:00
 Newyorkcity

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 中的属性值?
谢谢


另外感觉 Spring 这个东西学起来的话,没有大型项目,似乎很难做到熟练?不像是 Servlet 学起来,自己构思一些小项目练一练,熟悉还挺好.请问诸位在学习的时候都是如何掌握 Spring 的呢?有什么合适的适合入门 Spring 的项目?
谢谢
1683 次点击
所在节点    问与答
4 条回复
zjp
2018-05-29 01:09:37 +08:00
@value 了解一下,还有 propertiesBean 适合注入整个配置文件
推荐一本《 spring 实战》
Newyorkcity
2018-05-29 07:51:04 +08:00
@zjp 我看的就是《 spring 实战》.. 感觉并不是很友好, 比如实现同一个功能的不同操作,有些设置是不同操作里通用的,但它在第一个操作里讲了,后面那个操作就不提了..而且这本书第三章我看来看去也没看到怎么导入 properties 文件..
你说用 @value 注解...第一个 @value 应该是自动扫描装配里采用的吧,我这里问的问题是显示 javaconfig 配置啊..
另一个书上举了这么一个例子,说可以用 SystemProperties 对象引用系统属性
我翻遍上下文却也没找到它在哪里定义的 ystemProperties 对象,又是何时在 ystemProperties (我还不知道这是不是个 properties 文件)里添加了 disc.title 的值...
它在上面讲解『声明属性源并用 Spring 的 Environment 来检索属性』时倒是用 @PropertySource 加载了一个 app.properties 的文件,里面有 disc.title....那它的意思就是 @PropertySource 可以添加 properties 文件的内容到 SystemProperties 中,之后使用 properties 文件中的属性就用 SystemProperties?文章中也没有明示..
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 方法
zhaogaz
2018-05-29 10:43:16 +08:00
value 惨遭 at,哈哈哈。

是这样的,spring 自带 properties 扫描的工具,可以吧 properties 获取到统一处理。大概是叫 PropertiesFactoryBean

我不知道这算不算你说的创建 bean,我个人觉得只是配置一下自带的 bean。

再一点,spring 实战 我也看过了。基本是官方手册的简单汉化版。

官方手册写的东西多而全。有空的话可以看看。

关于分割线后面的内容,是这样的,spring 这种东西就是在业务推动下产生的一种抽象,你脱离了实际项目当然弄不明白了。

我也是初学者,算不上掌握,目前在看官方的说明书。

入门的项目也没什么推荐的,想要入门的话随便哪个都行吧。

我也找过 spring 项目,基本没有让人满意的,很多人推荐自己的,我看了写的都不行。一方面是太旧了,另一方面是没有展示 spring 的各种特性。我希望有能展示 spring 各方面特性、功能、特点、习惯用法的项目,反正我是没找到。。。可能也是搜索方式不对。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/458521

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX