Spring配置文件:
引入其他配置文件(分模块开发):
实际开发中,Spring的配置内容非常多,这就导致Spring配置很繁杂且体积很大,所以,可以将部分配置拆解到其他的配置文件中,而在Spring主配置文件通过import标签进行加载。
1
| <import resource="applicationContext-xxx.xml"/>
|
Spring的重点配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| <bean>标签 id属性:在容器中Bean实例的唯一标识,不允许重复 class属性:要实例化的Bean的全限定名 scop属性:Bean的作用范围,常用的是Singleton(默认)和prototype。 <property>标签:属性名称 value属性:注入的普通属性值 ref属性:注入的对象引用值 <list>标签 <map>标签 <properties>标签 <constructor-arg>标签 <import>标签:导入其他的Spring的分文件 ----------------------------------------------------------------------- Bean标签范围配置:(scope:指对象的作用范围,取值如下) Singleton(默认):读取配置文件时创建对象实例,只创建一个,单例的。 prototype:多例的。getBean时创建。 request:WEB项目中,Spring创建一个Bean对象,将对象存入到request域中。 session:WEB项目中Spring创建一个Bean的对象,将对象存入到session域中。 global session:WEB项目中,应用在Portlet环境,如果没有Portlet环境那么globalSession相当于sossion。
------------------------------------------------------------------------ Bean标签范围配置 1)当scope的取值为singleton时 Bean的实例化个数:1个 Bean的实例化实际:当Spring核心文件被加载时,实例化配置的Bean实例。 Bean的声明周期: · 对象创建:当应用加载,创建容器时,对象被创建了。 · 对象运行:只要容器在,对象一直活着。 · 对象销毁:当应用卸载,销毁容器时,对象就被销毁了。 2)当scope的取值为prototype时 Bean的实例化个数:多个 Bean的实例化时机:当调用getBean()方法时实例Bean · 对象创建:当使用对象时,创建新的对象实例 · 对象运行:只要对象在使用中,就一直活着。 · 对象销毁:当对象长时间不用时,被java的垃圾回收器回收了。
|
Spring相关API:
ApplicationContext的继承体系
- applicationContext: 接口类型,代表应用上下文,可以通过实例获得Spring容器中的Bean对象。

ApplicationContext的实现类
- ClassPathXmlApplicationContext
- FileSystemXmlApplicationContext
- 它是从磁盘路径上加载配置文件,配置文件可以在磁盘的任意位置。
- AnnotationConfigApplicationContext
- 当使用注解配置容器对象时,需要使用此类来创建Spring容器,它用来读取注解。
getBean()方法使用
1 2 3 4 5 6 7 8 9 10 11 12 13
| public Object getBean(String name) throws Exception {
assertBeanFactoryActive(); return getBeanFactory().getBean(name); }
------------------------------------------------------------------------ public <T> T getBean(Class<T> requiredType) throws Exception { assertBeanFactoryActive(); return getBeanFactory.getBean(requeiredType); }
|
Spring配置数据源
抽取jdbc配置文件
applicationContext.xml加载jdbc.properties配置文件获得连接信息。
首先,需要引入context命名空间和约束路径:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| // 加载外部的properties文件 <context:property-p1lacheolder location="classpath:jdbc.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" // 参数注入 <property name="driverClass" value="${jdbc.driver}"/} <property name="jdbcUrl" value="${jdbc.url}"/} <property name="user" value="${jdbc.username}"/} <property name="password" value="${jdbc.password}"/} </bean>
--------------------------------------------------------------------- Spring容器加载properties文件 <context:property-placeholder location="xx.properties"/> <property name="" value="${key}"/>
--------------------------------------------------------------------- Tips: class-->设置调用空参的方法的类的路径。 name-->设置set方法名字。 value-->设置properties.xml文件的key值。
|
依赖注入:

70行的是带参构造方法的参数。
而 ref=”userdao” 则是注入的依赖的id。
