欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

springboot系列3,自动装配

程序员文章站 2022-07-13 13:37:01
...

定义:基于规约大于配置的原则,实现Spring组件自动装配的目的。对于手动装配,不管是xml或是注解都需要配,就算有enable模块可以简化配置配置,但是还是要按照需要手动配,自动装配可实现插拔式方法。

装配方式:模式注解、@Enable模块、条件装配、工厂加载机制

实现方式:

1.**自动化装配

使用注解@EnableAutoConfiguration

2.实现自动化装配

XXXAutoConfiguration

3.配置自动化装配的实现

META-INF/spring.factories

自定义自动装配

其实springboot自动装配是在spring framework手动装配的基础上,通过配置文件配置,从而让spring在启动的时候自动找到的。上代码:

/**
 * HelloWorld自动装配
 */
@Configuration      //spring模式注解
@EnableHelloWorld   //spring @Enable 模块装配
@ConditionalOnSystemProperty(name = "user.name" , value = "haozi")  //条件装配
public class HelloWorldAutoConfiguration {
}

在resource下新建文件META-INF/spring.factories,并把上面的类配置上去

# Auto Configure
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
com.haozi.demo.configuration.HelloWorldAutoConfiguration

接下来只需在引导类上加@EnableAutoConfiguration来**自动装配即可

/**
 * {@link EnableAutoConfiguration} 的引导类
 */
@EnableAutoConfiguration
public class EnableAutoConfigurationBootstrap {

    public static void main(String[] args) {
        ConfigurableApplicationContext context = new SpringApplicationBuilder(EnableAutoConfigurationBootstrap.class)
                .web(WebApplicationType.NONE)       //非web类型
                .run(args);
        String helloWorld = context.getBean("helloWorld", String.class);
        System.out.println("helloWorld Bean : " + helloWorld);
        String helloWorld2 = context.getBean("helloWorld2", String.class);
        System.out.println("helloWorld Bean : " + helloWorld2);

        context.close();
    }
}

运行结果

springboot系列3,自动装配

 

相关标签: 学习 springboot