且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Spring零配置之@Configuration注解详解

更新时间:2022-08-21 19:02:49

Spring零配置之@Configuration注解详解

@Configuration介绍


Spring3.0之前要使用Spring必须要有一个xml配置文件,这也是Spring的核心文件,而Spring3.0之后可以不要配置文件了,通过注解@Configuration完全搞定。


Spring零配置之@Configuration注解详解


@Configuration即用来代替Spring配置文件的,它就是一个@Component组件,接收一个value值也就是bean的名字,value可以不填。


@Configuration使用


下面是一个使用实例,创建了一个userService和accountService的实例,accountService实例引用userService实例。

@Configuration
@ComponentScan(basePackages = { "com.test.web" })
@Import(UserConfg.class)
@ImportResource(locations = {"classpath:config/spring-beans.xml"})
public class MainConfg {

@Bean(name = "userService", initMethod = "init", destroyMethod = "destroy")
@Scope("singleton")
public UserService userService() {

    return new UserService();

    }

    @Bean
    public AccountService accountService(UserService userService) {
        AccountService as = new AccountService();
        as.setUserService(userService);
        return as;
    }

}

注解说明


@Configuration:代表这个类是一个配置类。


@ComponentScan:用来扫描指定包下面的注解类。


@Import:用来导入其他的@Configuration配置类。


@ImportResource:用来导入xml配置文件,比如某些配置一定要xml配置。


@Bean:用来定义一个bean,可以指定初始、销毁方法,及bean范围等。


这些注解都在spring-context包下,还有其他注解用来解放xml形式的配置,大量xml配置可java配置化,只要定义好,Spring会自动扫描包下面的@Configuration注解的配置文件类来装配。