专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

spring boot的自动装配及自定义装配

了解spring boot的自动装配先了解spring framework的手动装配。

spring framework手动装配

spring 模式注解装配

1、 定义:一种用于生命在应用中扮演“组件”角色的注解。比如:@controller、@service、@Component等
2、 装配:context:component-scan或者 @ComponentScan;前者是spring2.5中提出的方案, 后者是spring3.1的方案。

Spring @Enable 模块装配

什么是模块装配: Spring Framework 3.1 开始支持”@Enable 模块驱动“。所谓“模块”是指具备相同领域的功能组件集合, 组合所形成一个独立 的单元。比如 Web MVC 模块、AspectJ代理模块、Caching(缓存)模块、JMX(Java 管 理扩展)模块、Async(异步处 理)模块等。比如:@EnableWebMvc 启用WebMVC模块 @EnableTransactionManagement 启用事务管理模块

实现方式

1、 注解方式

@Retention( RetentionPolicy. RUNTIME)
@Target(ElementType. TYPE)
@Documented
@Import (DelegatingWebMvcConfiguration. class)
public @interface EnableWebMvc {
    ....
}

@Configuration
public class DelegatingWebMvcConfiguration extends WebMvcConfigurationSupport {
    ....
}

1、 编程接口的方式

实现一个自定义注解
/**
 *  激活 HelloWorld 模块
 *
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Import(HelloWorldImportSelector.class)
public @interface EnableHelloWorld {
}

实现一个配置类

/**
 * HelloWorld 配置
 *
 */
public class HelloWorldConfiguration {

    @Bean
    public String helloWorld() { // 方法名即 Bean 名称
        return "Hello,World 2019";
    }

}

定义个selector,实现import org.springframework.context.annotation.ImportSelector接口

public class HelloWorldImportSelector implements ImportSelector {
    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
        return new String[]{HelloWorldConfiguration.class.getName()};
    }
}

然后在可以在spring boot的启动类上加上@EnableHelloWorld,然后在 return “Hello,World 2019″打上断点debug启动就可以看到效果。也可以直接在自动注解的上加这个@Import(HelloWorldConfiguration.class)引入配置类而不是这个selector,同样也可以实现。但是为什么要要一圈呢?主要是因为多一层这个selector可以在select里做一下流程控制。

实现自动装配只需要在resource下新建META-INF文件夹,然后加入

# /是换行符,这里的类名一般都很长为了方便阅读换行标注,多个类用逗号分隔
org.springframework.boot.autoconfigure.EnableAutoConfiguration=/
com.HelloWorldAutoConfiguration,TestConfiguration

文章永久链接:https://tech.souyunku.com/29124

未经允许不得转载:搜云库技术团队 » spring boot的自动装配及自定义装配

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们