初学 Spring 的小问题,要给 bean 注入值,键值对保存在一个 properties 文件里,如何导入? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Newyorkcity
V2EX    问与答

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

  •  1
     
  •   Newyorkcity 2018-05-29 00:58:04 +08:00 2096 次点击
    这是一个创建于 2741 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 的项目?
    谢谢
    4 条回复    2018-05-29 10:43:16 +08:00
    zjp
        1
    zjp  
       2018-05-29 01:09:37 +08:00 via Android
    @value 了解一下,还有 propertiesBean 适合注入整个配置文件
    推荐一本《 spring 实战》
    Newyorkcity
        2
    Newyorkcity  
    OP
       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
        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 方法
    zhaogaz
        4
    zhaogaz  
       2018-05-29 10:43:16 +08:00
    value 惨遭 at,哈哈哈。

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

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

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

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

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

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

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

    我也找过 spring 项目,基本没有让人满意的,很多人推荐自己的,我看了写的都不行。一方面是太旧了,另一方面是没有展示 spring 的各种特性。我希望有能展示 spring 各方面特性、功能、特点、习惯用法的项目,反正我是没找到。。。可能也是搜索方式不对。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     829 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 20:15 PVG 04:15 LAX 12:15 JFK 15:15
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86