Spring练习1

文章对比了Spring框架中的IOC机制与MyBatis框架,通过测试类展示了Spring如何通过XML配置和注解进行对象注入。作者讨论了Category和Product类的注入关系,指出注解在连接对象之间的桥梁作用,并提到了setter注入和构造器注入的区别和应用问题。
摘要由CSDN通过智能技术生成

一、IOC

和MyBatis框架做一个对比

3a0870f45db8435a9b1f7552dad8f6af.png

下图是spring的测试类

ea44d8cdf6df4b41aece0a3df01ad6ec.png 

spring框架中,category是直接作为一种类型出现的

get bean获取容器对象

a98264e0efe74f57ae34611714e435d6.png

测试类中的两个c应该不是同一个对象,xml文件中先创造名字为c的对象,其中对name属性赋值并引用category实体方法,让它是category类型并通过getName和setName方法确认其name,最后使用测试类


二、注入对象

ef8c6ce99f1a40c28cc1ebd8e2d8ca32.png

目录如上图,新增加了Product实体类,并且在xml文件中新增关键字获取Product对象

eb987733dc224b41847949e3e4740aad.png

83a86522403b4a3a9238aa075d6d9f3f.png

测试结果如上图,我一开始很不明白为什么把Category的引入去除后还能获取category的name,但是看了一下Porduct类,里面其实是有get name的方法的,只是我下意识的认为只能获取product的内容,但是在经过注入后category的属性意思上是可以视为product的属性的


 三、注解方式

还是对比来看一下

f98258e2fd364cff933f040697dbb39a.png

15行表示告诉Spring要用注解的方式进行配置;去掉了注入方式用注解来完成

annotation-config:意思是注释-配置

94ee40ea6c0b413686dbb2471af55cfa.png

在Product.java中引入注解 

1eb627fd9a194b93a6b893e2e1ce75bf.png

 0226d0a474644f7f9187a02e0d0b42ad.png

 我仔细想了下注解有效的原因,感觉它很像一座桥梁,把两个标明注解(一个提示注意注解,一个插入注解)的地方连接起来

4cd2c542dc39475bb6ffac8bc7f818f2.png2af2cd9a832c496f96b3f4dfd57cf6e9.png


但是感觉@Resource(name="c")表意更加直观


 注解Category,Product

 cd6c4e0ccc3c4fda85b10631b161a4ae.png

10fde0a8091340cdb49ccf0e35137fc4.png

 3024a7beeed2451694fb491bf31c4c01.png

成功得到结果

我一开始以为有了component的注解后可以不要product中的autowired了,但是是没办法运行的

注入Category对象还是需要有autowired注解


三、教材p248-p249的setter注入和构造器注入 

88b1a190018a42968edb0cbae8e1b8d2.png

 setter注入没看懂和之前在hoe2j的有什么区别?好像就是把测试类的java换成了servlet的结构


842b1726e2454d728e8142de05152018.png

3432950551f94cc7af65077cb2ff2905.png 构造器注入出现了问题,在更换方法输出后还是不行确定了不是实体类方法的问题,原因应该在xml文件中

暂时到这里吧,有点不舒服,后续内容之后再补

本次用时:三小时

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值