- 名师讲坛:Spring实战开发(Redis+SpringDataJPA+SpringMVC+SpringSecurity)
- 李兴华
- 924字
- 2021-03-30 21:09:12
3.1 Bean基本管理
Spring容器之中,类对象需要交由Spring统一管理。在Spring配置中,除了可以定义类的基本处理逻辑外,还可以实现属性的注入处理。
1.【mldnspring-base项目】创建Emp.java的程序类,实现常用属性定义。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer494.jpg?sign=1739129953-8WmSTrm1ICnKZijMOlmTWbzcbLB4RjFg-0-a7f47056eefa3de98593e15bcfa450e4)
2.【mldnspring-base项目】修改spring-base.xml配置文件,追加Emp程序类的Bean配置。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer520.jpg?sign=1739129953-SFEKeaAhVppM0pbJCeNwBQ8O0OO6txvo-0-97264e6df1d0b7811a8d0fec76dc5ecb)
本程序实现了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=1739129953-4oNeQR1O6LFaaiICwl3MgFCl7fcZyC7X-0-ca207cb1a3fff09765e645a45ee45590)
内部Bean只提供给一个属性使用,所以不用再配置id属性。
3.【mldnspring-base项目】编写测试程序类,实现Emp对象注入。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer521.jpg?sign=1739129953-hdgk5ZpWkoX1IyRZCcL7QHaPNren1LfB-0-8fc77f0c52f4833cbf3514c7dd7f2ad7)
本程序通过Spring创建了Emp的实例化对象,由于所有的属性都已经在配置文件中定义了,所以注入后可以直接获取Bean对象的完整信息。
除了可以进行单独的Bean对象定义之外,也可以利用Spring配置文件实现Bean的引用配置。例如,假设某个雇员属于某个部门,可以得到如图3-1所示的类关联关系。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer548.jpg?sign=1739129953-xUYBDsI7p1Ne9iTSraQjNNK7m16GIs6E-0-ec98f9426b8d5fc5455385d5fce6778d)
图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=1739129953-x5dKQWnbocXdvbh9wGa5ZUzpULydtZoB-0-97ca368cb497241c7eea9876e03df283)
5.【mldnspring-base项目】修改spring-base.xml配置,追加Bean关联配置。
![](https://epubservercos.yuewen.com/5C1AE0/16499866905000506/epubprivate/OEBPS/Images/figer567.jpg?sign=1739129953-N9SdJxJww4nvaf5Suc0MiGZmtjLBg4Vt-0-85c69c911917d06901b1905371318165)
本程序定义了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=1739129953-zI8eROLN2pomwDmDNyYyE1h3PzTQMdJM-0-c8d60499a8c7e120468c6000f16c26c4)
此时程序实现了关联对象的匹配,而对象之间的依赖关联也可以通过Spring配置文件清晰表达。这样,当进行关联关系修改时也会非常方便。