您的位置:首页 > 游戏 > 游戏 > 深入探索Spring注解

深入探索Spring注解

2025/1/14 2:45:15 来源:https://blog.csdn.net/disper1110/article/details/141002812  浏览:    关键词:深入探索Spring注解

一、Spring 2.5 注解概述

1. 注入类

  • @Component:定义通用Bean的注解,适合无法明确归属层次的Bean。

    • 相当于XML配置中的 <bean id="" class=""></bean>
    • 示例:
      @Component
      class User {}
      
  • @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;
      
    • 注意事项:

      1. 默认按类型装配。
      2. 当有多个相同类型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应用程序,让开发过程变得更为顺畅。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com