4、Spring完全注解开发

Spring完全注解开发

完全注解开发是指在Spring应用中完全依赖注解进行配置和开发,而不使用XML配置文件。以下是完全注解开发的一些优点和缺点:

常用注解

注解 说明
@Configuration 注入Spring容器,并声明该类为配置类,该类作用等同于Spring配置文件
@ComponentScan 用来扫描单个包,作用等同于context:component-scan
@ComponentScans 用来扫描多个包,作用等同于context:component-scan
@EnableAspectJAutoProxy 开启AOP注解,作用等同于aop:aspectj-autoproxy
@PropertySource 指定要读取的配置文件,作用等同于context:property-placeholder。如果Spring版本小于4.3,还需要在配置类中创建PropertySourcesPlaceholderConfigurer的Bean,4.3之后为自动创建

注意:只有在@Configuration配置类中,才可以使用方法调用的方式获取bean;如果没有@Configuration直接调用带有@Bean注解的方法,会有编译异常Method annotated with @Bean is called directly. Use dependency injection instead.

@Configuration
public class AppConfig {

    @Bean
    public TempUser tempUser(){
        return new TempUser();
    }
	
	public void config(){
		TempUser u = tempUser();
	}
}

用法

1、自定义配置类

@Configuration
@ComponentScan("top.ygang")
@PropertySource({
        "app.properties"
})
public class SpringConfiguration {
}

2、测试

需要使用AnnotationConfigApplicationContext类来加载配置类

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(SpringConfiguration.class);
User bean = applicationContext.getBean(User.class);
System.out.println(bean);