数据源对象管理(管第三方bean)加载properties文件

62 阅读2分钟

image.png

项目结构

这里第三方数据源 以一个对象形式展示
用的阿里德鲁伊 druid?

初始化

applicationContext.xml普普通通的初始化
dao层就啥也不写了,毕竟本节学习管 第三方

app启动文件里面也就只加载了 applicationContext.xml文件

image.png

image.png

pom.xml 导入 druid

image.png

配置applicationContext.xml
以构造器的方式注入

image.png

震惊,注入,这 岂不是就是对象实例化

编写项目启动文件 App.java 并运行

image.png

再做一个不认识的第三方对象

上maven随便找一个,并导入坐标

image.png

编写applicationContext.xml
以一种奇怪的方式查看提供的方法

image.png

点进去查看,找构造器

image.png

黑马老师开始皮了
自己瞎探索,反正有jdbc的基础,编译器也会自动补齐

image.png

报错了

image.png

现场解决,~那肯定找不到,因为我们压根没有导入jdbc的坐标

image.png

image.png

再运行OK

image.png

打印出来的是一些配置信息
也就是可以接着配xml,比如最大连接数

image.png

!!!白学警告
上面的连接地址,连接账号密码,还是不要写在xml里面
在resources文件夹里面,建个jdbc.properties文件

image.png

写入内容

image.png

那么spring该如何读取这样的文件呢?

Spring加载 properties文件

image.png

image.png

1、开辟namespace

还是配置applicationContext.xml文件
先在 里面添加空间
复制旧的,再改成红色标注的

image.png

2、加载properties文件

还是applicationContext.xml文件

image.png

3、使用

使用属性占位符 读取properties文件中的属性
${写入属性名就好}

image.png

一些properties文件的坑

冲突

比如你写 useername=root666
获取到的却是系统的xxx名字

这是因为username和底层某些东西冲突了,以前jdbc.username不冲突
冲突了就有优先级,那么你这个username就没机会出来蹦跶了

解决办法
加上这个属性,就不加载系统属性了

image.png

加载多个properties
以逗号分隔

image.png

或则用*.properties全部加载

image.png

最专业的写法

image.png

最最标准最最专业的写法,甚至可以加载别的jar包里面的properties

image.png