一、Spring 2.5 注解概述
1. 注入类
-  @Component:定义通用Bean的注解,适合无法明确归属层次的Bean。 - 相当于XML配置中的 <bean id="" class=""></bean>
- 示例:@Component class User {}
 
- 相当于XML配置中的 
-  @Service:专用于数据访问层的Bean。 
-  @Repository:用于业务层的Bean。 
-  @Controller:针对控制层的Bean。 
注:
@Service、@Repository和@Controller功能和语法相同。
2. 注入基本数据
-  @Value:注入基本属性数据。 -  类似于XML中的 <property>,可用于成员变量或set方法。
-  示例: @Value("数据内容") private String data;
-  XML配置: <context:property-placeholder location="classpath:jdbc.properties"/>
 
-  
-  @Autowired:通过set方法进行类型装配,set方法可省略。 -  语法: @Autowired(required = true)
-  示例: @Autowired private IAccountService accountService;
-  注意事项: - 默认按类型装配。
- 当有多个相同类型Bean时,自动切换为名称装配,若无则报错。
 
 
-  
3. 其他注解
-  @Primary:指明首选的Bean。 
 示例:@Service @Primary public class MainServiceImpl implements MainService {// ... }
-  @Qualifier:指定具体注入的Bean。 
 示例:@Autowired @Qualifier("mainService") private MainService mainService;
-  @Scope:定义Bean的作用域(如singleton和prototype)。 
 示例:@Service @Scope("prototype") public class PrototypeService {// ... }
-  @PostConstruct:依赖注入完成后调用,用于初始化。 
 示例:@PostConstruct public void initialize() {System.out.println("Initializing..."); }
-  @PreDestroy:对象销毁前调用,用于清理工作。 
 示例:@PreDestroy public void cleanup() {System.out.println("Cleaning up..."); }
二、Spring 3.0 注解新特性
1. @Configuration
表示类为配置类,替代XML配置文件。
 示例:
@Configuration
public class AppConfig {@Beanpublic MyService myService() {return new MyServiceImpl();}
}
2. @ComponentScan
扫描指定包及其子包下的所有组件。
 示例:
@Configuration
@ComponentScan(basePackages = {"com.example.service", "com.example.repository"})
public class AppConfig {// ...
}
3. @PropertySource
指定外部属性文件位置,加载配置属性。
 示例:
@Configuration
@PropertySource("classpath:application.properties")
public class AppConfig {@Autowiredprivate Environment env;@Value("${my.property}")private String myProperty;
}
4. @Bean
在配置类中定义Bean,替代XML中的 <bean>。
 示例:
@Configuration
public class AppConfig {@Beanpublic Date myDate() {return new Date();}
}
5. @Import
导入其他配置类或静态工厂类。
 示例:
@Configuration
@Import(OtherConfig.class)
public class AppConfig {
}
这些注解显著简化了Spring的配置方式,提高了代码的可读性与可维护性。灵活运用这些注解,能够更高效地构建和管理Spring应用程序,让开发过程变得更为顺畅。
