一、IOC
和MyBatis框架做一个对比
下图是spring的测试类
spring框架中,category是直接作为一种类型出现的
get bean获取容器对象
测试类中的两个c应该不是同一个对象,xml文件中先创造名字为c的对象,其中对name属性赋值并引用category实体方法,让它是category类型并通过getName和setName方法确认其name,最后使用测试类
二、注入对象
目录如上图,新增加了Product实体类,并且在xml文件中新增关键字获取Product对象
测试结果如上图,我一开始很不明白为什么把Category的引入去除后还能获取category的name,但是看了一下Porduct类,里面其实是有get name的方法的,只是我下意识的认为只能获取product的内容,但是在经过注入后category的属性意思上是可以视为product的属性的
三、注解方式
还是对比来看一下
15行表示告诉Spring要用注解的方式进行配置;去掉了注入方式用注解来完成
annotation-config:意思是注释-配置
在Product.java中引入注解
我仔细想了下注解有效的原因,感觉它很像一座桥梁,把两个标明注解(一个提示注意注解,一个插入注解)的地方连接起来
但是感觉@Resource(name="c")表意更加直观
注解Category,Product
成功得到结果
我一开始以为有了component的注解后可以不要product中的autowired了,但是是没办法运行的
注入Category对象还是需要有autowired注解
三、教材p248-p249的setter注入和构造器注入
setter注入没看懂和之前在hoe2j的有什么区别?好像就是把测试类的java换成了servlet的结构
构造器注入出现了问题,在更换方法输出后还是不行确定了不是实体类方法的问题,原因应该在xml文件中
暂时到这里吧,有点不舒服,后续内容之后再补
本次用时:三小时