跳过正文
  1. 文章/
  2. Java/
  3. SpringFramework/
  4. Spring/

4、Spring完全注解开发

·1280 字·3 分钟· loading · loading · ·
Java SpringFramework Spring
GradyYoung
作者
GradyYoung
Spring - 点击查看当前系列文章
§ 4、Spring完全注解开发 「 当前文章 」

Spring完全注解开发
#

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

  • 优点
    • 简化配置:使用注解可以减少XML配置文件的数量和复杂性,简化了项目的配置过程。注解配置通常更为简洁和直观,使得配置更容易理解和维护。
    • 提升开发效率:注解配置方式可以减少样板代码的编写,节省了开发人员的时间和精力。同时,注解也提供了更强大的功能,如自动装配和切面编程,可以减少手动编写的代码量。
    • 更好的可读性:注解使得代码的配置和逻辑更加紧密,使得代码更具可读性和可理解性。通过注解,开发人员可以直观地了解代码的用途和意图,提高了代码的可维护性。
    • 更灵活的开发方式:使用注解可以更灵活地定义和组织代码结构,使得开发过程更加自由。注解可以应用在类、方法、字段等级别,可以更细粒度地控制和定制功能。
    • 更好的集成性:注解配置更加紧密地与Java代码集成,使得与其他框架和工具的集成更加方便。注解可以与Spring的其他特性(如Spring MVC、Spring Data等)无缝协作,提供更一致和统一的开发体验。
  • 缺点
    • 可能过于依赖注解:完全注解开发使得配置信息分散在各个类和方法中,可能导致代码过于依赖注解,降低了代码的可读性和可维护性。同时,如果注解配置错误或不当,可能会导致运行时的问题。
    • 难以处理复杂配置:对于复杂的配置需求,完全注解开发可能不如XML配置灵活。XML配置文件具有更强大的表达能力,可以处理更复杂的配置场景,如条件化配置、属性占位符等。
    • 不够直观:对于新加入的团队成员或不熟悉注解的开发人员来说,完全注解开发可能不够直观。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);
Spring - 点击查看当前系列文章
§ 4、Spring完全注解开发 「 当前文章 」