一、了解DI
DI—Dependency Injection,即“依赖注入”:组件之间依赖关系由容器在运行期决定,形象的说,即由容器动态的将某个依赖关系注入到组件之中。依赖注入的目的并非为软件系统带来更多功能,而是为了提升组件重用的频率,并为系统搭建一个灵活、可扩展的平台。通过依赖注入机制,我们只需要通过简单的配置,而无需任何代码就可指定目标需要的资源,完成自身的业务逻辑,而不需要关心具体的资源来自何处,由谁实现。
二、用注释方式进行手动装配编程实例
1 . 在配置文件applicationContext.xml中添加下列代码实现bean的自动扫描
<context:component-scan base-package="com.edusoft"></context:component-scan>
2 . 在需要被创建对象的类的开头添加注释
@Service用于标注业务层组件。
@Controller用于标注控制层组件(如struts中的 action)。
@Repository用于标注数据访问组件,即DAO组件。
@Component泛 指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
3 . 在需要新建对象的地方使用@Autowired或@Resource注解方式进行装配
先在类的开头加入这两行注释:
@RunWith(SpringJUnit4ClassRunner.class)//Spring集成的Junit,用注释方式读取容器全局配置文件
@ContextConfiguration(locations = "classpath:config/applicationContext.xml")//配置文件
@Autowired
CategoryServiceImpl csi;
@Resource注解和@Autowired一样,也可以标注在字段或属性的 setter方法上,但它默认按名称装配。
名称可以通过@Resource的name属性指定,如果没有指定name属性, 当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对 象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称 寻找依赖对象。
@Resource(name=“personDaoBean”)
private PersonDao personDao;//用于字段上