![名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)](https://wfqqreader-1252317822.image.myqcloud.com/cover/156/29977156/b_29977156.jpg)
3.1 Bean基本管理
Spring容器之中,类对象需要交由Spring统一管理。在Spring配置中,除了可以定义类的基本处理逻辑外,还可以实现属性的注入处理。
1.【mldnspring-base项目】创建Emp.java的程序类,实现常用属性定义。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer494.jpg?sign=1739253855-MYhpP2svNIB8PkKoOK1e5oxOzu84IJob-0-3a1b0c5ca259fa79c9399ff4d07d5bbc)
2.【mldnspring-base项目】修改spring-base.xml配置文件,追加Emp程序类的Bean配置。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer520.jpg?sign=1739253855-QEm9imupivceQusyzNUsKvQ63BVBvRwT-0-769ca5d781990f0d474b202868aac8a7)
本程序实现了Emp类的Bean配置,并且采用<property>元素设置了类对象中要保存的属性,使用value设置了属性的具体数据(只能是常用类型,如String、int、Integer等)。由于hiredate属于java.util.Date类型,所以本例将系统的Date类也定义为Bean对象,随后通过ref进行引用配置。
提示:采用内部Bean进行配置。
以上程序使用了两个配置Bean,并且利用语句<property name="hiredate" ref="hiredateObject"/>实现了Bean的依赖关系。如果不想配置为两个,可以采用内部Bean定义形式处理。
范例:采用内部Bean配置。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer522.jpg?sign=1739253855-mmSducaKZEVDQTXWqnbuMImi3O5OR4rF-0-c8b47183cd69f2281d2db8246f296f61)
内部Bean只提供给一个属性使用,所以不用再配置id属性。
3.【mldnspring-base项目】编写测试程序类,实现Emp对象注入。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer521.jpg?sign=1739253855-k2FEyooEqf1ltnB0w4hqYZoxU78Dr3em-0-7fc77278b9b05e686354255d23498a13)
本程序通过Spring创建了Emp的实例化对象,由于所有的属性都已经在配置文件中定义了,所以注入后可以直接获取Bean对象的完整信息。
除了可以进行单独的Bean对象定义之外,也可以利用Spring配置文件实现Bean的引用配置。例如,假设某个雇员属于某个部门,可以得到如图3-1所示的类关联关系。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer548.jpg?sign=1739253855-hQ2fq8OKfk9U4PJ9di7JQSA79NOuqd0B-0-27619df59317d0245e58fc2d0a46b153)
图3-1 类关联关系
提示:关于数据转型。
进行Spring配置时,所有配置内容均是以字符串形式出现的。常用的基本数据类型可以自动实现类型转换,例如,10会自动转为int或Integer。如果要设置的属性类型是布尔型,则可匹配的内容有多个,如0(false)和1(true)、off(false)和on(true)、true和false等。
4.【mldnspring-base项目】创建Dept.java程序类,同时修改Emp.java类,追加关联配置。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer547.jpg?sign=1739253855-GsjP71jwfAGPKPhLrBFwMs4hynSmacQy-0-a9f67fcbb6f31ce415c308e46ea78ee8)
5.【mldnspring-base项目】修改spring-base.xml配置,追加Bean关联配置。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer567.jpg?sign=1739253855-d0lVcRxImiCudhKPGkwMF3qUz6SE6ogR-0-a188a0acb28981c9e4bc96aa40c4ec56)
本程序定义了Dept类对象id="dept",而后在定义Emp类对象时通过ref可以实例化Bean对象引用,这样就实现了关联配置。
提示:Spring拥有完善的反射处理机制。
上述配置,如果读者对于反射机制非常熟悉的话,也可以通过Class、Method类对象,利用setter方法进行反射处理。但要想将其做到通用性,则还需要花费一些功夫。正是因为Spring拥有完善的反射处理机制,所以能有效提高开发效率。
6.【mldnspring-base项目】在编写测试类时,可以通过Emp类对象找到Dept类对象,也可以直接将Dept类对象注入到程序中进行获取。本测试程序将只注入Emp类对象。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer568.jpg?sign=1739253855-mArIFzwdICU36Gl4YcM7mOcqH5746FWE-0-e7f6e150ac30a581a70b3779f7d891ce)
此时程序实现了关联对象的匹配,而对象之间的依赖关联也可以通过Spring配置文件清晰表达。这样,当进行关联关系修改时也会非常方便。