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 | <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"> |
(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> |