Spring的配置文件
Spring是作为WebServlet的Context的一部分发挥自己IOC容器的作用的,参考以下文章
那么Spring的配置文件由什么组成呢
Spring配置做什么
由文章3我们知道,作为IOC容器,其本质就是一次性实例化一些类,并且为这些类保持单例模式
所以Spring的配置文件主要就是配置!!哪些类需要实例化!!
Spring的根元素
Spring配置文件以一个Beans标签作为根元素 注意这里是复数bean加了s
1 | <beans> |
实例化Bean的两种方式
有两种类我们需要进行实例化
- 自己写的实现类
- 某些第三方库里已经写好实现的类,如JDBC
对于这些类的实例化,有两种实例化方法,用哪种都可以,但是一般来讲对于前者我们采用 注解 的方式,对于后者我们采用 XML配置的方式
使用注解扫描实例化Bean
采用以下配置,就可以通过扫描注解的方式实例化Bean,哪些Bean会被扫描参考这里,以及配置上关于事务的一些坑
1 | <beans> |
采用XML配置的方式
采用XML配置的方式,就是把写好的类的类名和属性值用XML结构表示出来,以JDBC作为举例
1 | <beans> |
从Spring配置的根元素Beans可以看出来,Beans是复数,那么内容主体肯定是Bean单数,上边这个Bean代表什么呢?
1 | import org.apache.commons.dbcp.BasicDataSource; <==== 由于XML中没有包名这一说,所以必须指定具体位置(class="包名") |
${jdbc.username}是什么
由上文可见每个Bean就是简单的实例化和赋值操作,第一次接触到这个的同学可能会有疑问,${}符号代表什么意思?
${}代表从某个配置文件中取值
Java支持文件名为 .properties 的文件存储一些变量,在XML中加载这个文件,就可以通过美元符合加大括号的形式取值,在配置文件中是以Key-Value键值对的形式储存数据的,可以放到resource目录下,参考classpath字段是什么
jdbc.properties
1 | jdbc.url = jdbc:mysql://127.0.0.1:3306/psas?useUnicode=true&characterEncoding=utf8 |
在Spring中加载配置文件
Sping本身提供了两个类
- PropertiesFactoryBean: 读取配置文件
- PreferencesPlaceholderConfigurer: 加载配置文件
可以通过XML配置的方式加载配置文件
1 | <!--读取配置文件--> |
最后补充一篇小文章[如何让Spring的配置文件看起来整洁][]