- 名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- 李兴华
- 924字
- 2021-03-30 21:09:12
3.1 Bean基本管理
Spring容器之中,类对象需要交由Spring统一管理。在Spring配置中,除了可以定义类的基本处理逻辑外,还可以实现属性的注入处理。
1.【mldnspring-base项目】创建Emp.java的程序类,实现常用属性定义。

2.【mldnspring-base项目】修改spring-base.xml配置文件,追加Emp程序类的Bean配置。

本程序实现了Emp类的Bean配置,并且采用<property>元素设置了类对象中要保存的属性,使用value设置了属性的具体数据(只能是常用类型,如String、int、Integer等)。由于hiredate属于java.util.Date类型,所以本例将系统的Date类也定义为Bean对象,随后通过ref进行引用配置。
提示:采用内部Bean进行配置。
以上程序使用了两个配置Bean,并且利用语句<property name="hiredate" ref="hiredateObject"/>实现了Bean的依赖关系。如果不想配置为两个,可以采用内部Bean定义形式处理。
范例:采用内部Bean配置。

内部Bean只提供给一个属性使用,所以不用再配置id属性。
3.【mldnspring-base项目】编写测试程序类,实现Emp对象注入。

本程序通过Spring创建了Emp的实例化对象,由于所有的属性都已经在配置文件中定义了,所以注入后可以直接获取Bean对象的完整信息。
除了可以进行单独的Bean对象定义之外,也可以利用Spring配置文件实现Bean的引用配置。例如,假设某个雇员属于某个部门,可以得到如图3-1所示的类关联关系。

图3-1 类关联关系
提示:关于数据转型。
进行Spring配置时,所有配置内容均是以字符串形式出现的。常用的基本数据类型可以自动实现类型转换,例如,10会自动转为int或Integer。如果要设置的属性类型是布尔型,则可匹配的内容有多个,如0(false)和1(true)、off(false)和on(true)、true和false等。
4.【mldnspring-base项目】创建Dept.java程序类,同时修改Emp.java类,追加关联配置。

5.【mldnspring-base项目】修改spring-base.xml配置,追加Bean关联配置。

本程序定义了Dept类对象id="dept",而后在定义Emp类对象时通过ref可以实例化Bean对象引用,这样就实现了关联配置。
提示:Spring拥有完善的反射处理机制。
上述配置,如果读者对于反射机制非常熟悉的话,也可以通过Class、Method类对象,利用setter方法进行反射处理。但要想将其做到通用性,则还需要花费一些功夫。正是因为Spring拥有完善的反射处理机制,所以能有效提高开发效率。
6.【mldnspring-base项目】在编写测试类时,可以通过Emp类对象找到Dept类对象,也可以直接将Dept类对象注入到程序中进行获取。本测试程序将只注入Emp类对象。

此时程序实现了关联对象的匹配,而对象之间的依赖关联也可以通过Spring配置文件清晰表达。这样,当进行关联关系修改时也会非常方便。