Spring框架@Autowired注解详解

需积分: 16 6 下载量 190 浏览量 更新于2024-09-09 收藏 19KB DOCX 举报
"Spring注解的收集与自动注入" 在Spring框架中,注解是简化配置和增强代码可读性的重要工具。本资源主要介绍了Spring中的@Autowired注解以及@Service注解,以及如何通过XML配置启用注解驱动的组件扫描。 @Autowired注解是Spring 2.5引入的一个关键特性,它允许开发者实现依赖注入(Dependency Injection, DI)而不必在XML配置文件中显式声明bean。这个注解可以应用于字段、方法或方法参数上,Spring容器会自动寻找合适的依赖并注入。例如,在提供的代码示例中,Man接口有两个实现类Chinese和American,它们都实现了sayHello()方法。 @Service注解是Spring中的一个组件注解,它属于Spring的 stereotype 注解类别,包括@Component、@Repository和@Controller。@Service通常用于业务层组件,表示一个bean。当使用@Service时,Spring会自动根据类名创建一个bean,bean的名称是类名的小写形式。如Chinese类会被实例化为"chinese",American类为"american"。如果需要自定义bean名称,可以通过@Service("你自己改的bean名")来实现。 在XML配置文件中,为了使Spring能够识别和处理这些注解,我们需要添加两行配置: 1. `<context:annotation-config/>`:这行配置启用了Spring对注解的处理,使得Spring容器能够识别并处理类上的注解,如@Autowired和@Service等。 2. `<context:component-scan base-package="testspring.main"/>`:这行配置告诉Spring在指定的包(及其子包)下查找带有@Component、@Service、@Repository和@Controller注解的类,并将它们注册为bean。 通过这样的配置,Spring容器会在启动时扫描指定包下的所有类,找到带有@Service注解的类,并根据注解自动实例化bean。同时,由于@Autowired注解的存在,Spring会自动将合适的依赖注入到需要的地方,比如如果一个类中有一个Man类型的字段,Spring会自动将Chinese或American注入,具体取决于哪种bean是默认首选或有其他策略(如类型匹配、@Qualifier注解等)。 总结来说,Spring的@Autowired和@Service注解结合XML配置中的组件扫描,极大地简化了bean的声明和依赖注入的过程,提高了开发效率。理解并熟练运用这些注解是Spring开发中不可或缺的一部分。