一、根据how2j网站练习IOC/DI
1、新建项目spring1
2、导入lib包![](https://i-blog.csdnimg.cn/blog_migrate/0e33f3c9a61708e4c49b2d49aaa776ba.png)
3、编写代码
(1)映射主类Category.java
(2)核心配置文件applicationContext.xml
<bean>标签中,id为bean的名称,class为对应的类名
利用<property>标签将"category1"这个值传到了名为name的属性中,即为javabean的setter方法传参
(3)测试
ApplicationContext接口的实现类ClassPathXmlApplicationContext
从当前路径检索配置文件创建容器实例
getBean方法获取bean
4、反思原理
测试类用ApplicationText接口实现类检索配置文件加载容器实例,然后使用context.getBean方法获取bean,然后调用实体类方法获取数据名字属性,将原本在test里写的插入代码运用配置文件写好
二、Spring注入对象
1、实体类
2、配置文件
在Spring中可以通过配置文件使用<ref>元素引用其他javaBean实例对象
创建Product的时候注入一个Category对象,将c注入category属性
3、测试类![](https://i-blog.csdnimg.cn/blog_migrate/5bf53067687902ed911058f27a0cf816.png)
三、注解方式
1、配置文件
核心是加上一串<
context:annotation-config
/>代码
使用注解之后就可以不用ref属性注入
可以直接获取到需要的category对象
2、实体类对应属性加上@Autowired注解
不要忘记导入相对应的包,使用注解需要导入包
或者将注释写在setCategory方法上,可以获得同样效果
3、正常运行
4、使用@Resource注解![](https://i-blog.csdnimg.cn/blog_migrate/7d2409423a39810cfc2f203d5a2f19ac.png)
也可以正常运行
5、对Bean的注解
(1)配置文件中只加<context:component-scan base-package="com.how2java.pojo"/>
其作用是告诉Spring,bean都放在com.how2java.pojo这个包下
(2)@Component注解
加上@Component注解,是表明此类是bean
并且因为在xml中没有配置了,所以初始化需要在bean属性声明中
Category.java
product.java
(3)正常运行![](https://i-blog.csdnimg.cn/blog_migrate/b0411d27bae134384ce996d01f4358bf.png)
四、课本练习注入
1、实体类
2、配置文件
运用<constructor-arg>,<value>标签注入参数值
3、测试类