0%

xml管理收尾

spring入门第四节——xml管理Bean

今天依旧是个人知识梳理。

前面说到了xml对Bean的管理,总结下来只有两个大操作,创建Bean对象和属性注入,属性注入分为普通注入,外部注入,内部注入,级联赋值,集合类型注入,之后简单介绍了以下Bean的一些小知识点:工厂Bean,Bean的作用域,Bean的生命周期。在学会了上述操作后,又遇到了新的问题,那就是当需要注入数量非常多的属性的时候,总不能每个属性一个property吧,这样操作不仅累人,而且数量众多的property看着非常杂乱,这时候就需要用到新的知识点:自动装备和配置外部文件。

1.自动装配

回顾以下整个程序的执行流程,首先是用ApplicationContext加载xml配置文件,这个过程中执行了xml文件中的语句,生成了Bean对象并注入了属性,接着在程序中创建对象,并通过对象获取Bean实例对象,最后在执行结束的时候销毁Bean对象,这就是一个完整的流程。自动装配要做的就是在执行xml语句的时候不再需要property标签,可以自动化的注入属性,这个过程需要用到Bean标签中的autowire.

autowire=”byName”通过属性名称进行自动装配

autowire=”byType”通过属性类型进行自动装配

属性名称和属性类型通过需要被装配的对象类属性的Bean类id判断

示例:

`<bean id="Emp" class="spring5testcollection.test.Emp" autowire="byType"></bean>`
`<bean id="Dept" class="spring5testcollection.test.Dept"></bean>`

`<bean id="Emp" class="spring5testcollection.test.Emp" autowire="byName"></bean>`
`<bean id="uma" class="spring5testcollection.test.Dept"></bean>  //uma是Emp类中属性的名称private Dept uma;`

Q:为什么自动装配对象类属性的时候,对象类属性对应的类也要在配置文件中封装成Bean类才能装配成功。
配置文件的所有操作都是关于Bean类的,Bean中的property代替了Java类中的Set方法的赋值进行属性注入,所以要让配置文件的Bean类找到对象类,才能对对象属性进行属性注入,配置文件不会从src目录去查找Java类,所以要把对象类属性封装成Bean类,并在配置文件中与property连接。

2.配置外部文件

其实就是连接数据库,导入数据库中数据的意思。配置外部文件需要用到durid(德鲁伊)的jar包,接下来我会说明导入数据库数据的操作流程。

(1)导入jar包

将jar包导入lib中,配置好Project Structure

(2)直接连接数据库

在xml文件中写如下语句:

1
2
3
4
5
6
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
<property name="driverClassName" value="${poro.driverClassName}"></property>
<property name="url" value="${poro.url}"></property>
<property name="username" value="${poro.username}"></property>
<property name="password" value="${poro.password}"></property>
</bean>

(3)大多是情况下真实的连接数据库:

3.1将数据库配置文件放在src目录下,在xml文件中创建context名称空间,通过context导入数据库配置文件

3.1.1数据库配置文件示例(拥有driverClassName,url,username,password四个属性,分别对应驱动,网址,用户名,密码。驱动和网址用来找数据库位置,用户名和密码用来登入数据库)

3.1.2在xml文件中创建context名称空间

3.1.3在xml文件中导入数据库配置文件(通过context:property-placeholder标签,location来导入数据库配置文件)

1
<context:property-placeholder location="classpath:jdbc.properties"></context:property-placeholder>

3.2通过数据库配置文件连接数据库