前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot自动装配

springboot自动装配

原创
作者头像
java小黑
发布2023-04-25 10:04:59
2110
发布2023-04-25 10:04:59
举报
文章被收录于专栏:加哇加哇

自动装配

概念

Spring Boot 自动装配是一种便捷的功能,它可以自动发现和配置项目中的 bean,从而简化 Spring 应用程序的配置。自动装配的目标是让开发者能够专注于业务逻辑,而不需要花费大量时间手动配置各种组件、服务和数据源

作用

  1. 简化配置:自动装配可以自动发现和配置项目中的 bean,减少了手动配置组件、服务和数据源的工作量。这使得开发者可以专注于业务逻辑,而不需要花费大量时间在繁琐的配置上。
  2. 提高开发效率:自动装配功能使得开发者可以快速构建和部署应用程序。通过自动配置项目中的组件,开发者可以更快地进行迭代和测试,从而提高整体

具体步骤

首先加载核心注解@SpringBootApplication

代码语言:javascript
复制
package com.it.myservice;
​
​
import com.it.myservice.service.MyService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class AutomaticDemoApplication {
​
    public static void main(String[] args) {
        ConfigurableApplicationContext context = SpringApplication.run(AutomaticDemoApplication.class, args);
        MyService myService = context.getBean(MyService.class);
        System.out.println(1+myServi
        ce.getMessage());
    }
​
}
​

2.Spring Boot 读取 spring.factories 文件

在 src/main/resources/META-INF 目录下创建 spring.factories 文件,以便 Spring Boot 能够发现自动装配类

代码语言:javascript
复制
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.it.myservice.config.MyServiceAutoConfiguration

3.创建一个 MyServiceAutoConfiguration 类,用于自动装配 MyService

代码语言:javascript
复制
package com.it.myservice.config;
​
​
import com.it.myservice.service.MyService;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
​
@Configuration  @EnableConfigurationProperties(MyServiceProperties.class)
public class MyServiceAutoConfiguration {  
    @Bean
    @ConditionalOnMissingBean
    public MyService myService(MyServiceProperties properties) {
        return new MyService(properties.getMessage());
    }
}

4.创建一个 MyServiceProperties 类,用于绑定配置属性

代码语言:javascript
复制
package com.example.myservice;
​
import org.springframework.boot.context.properties.ConfigurationProperties;
​
@ConfigurationProperties(prefix = "myservice")
public class MyServiceProperties {
    private String message = "Default message";
​
    public String getMessage() {
        return message;
    }
​
    public void setMessage(String message) {
        this.message = message;
    }
}

5.创建一个简单的 MyService 类

代码语言:javascript
复制
package com.example.myservice;
​
public class MyService {
    private String message;
​
    public MyService(String message) {
        this.message = message;
    }
​
    public String getMessage() {
        return message;
    }
}
​

详细步骤

代码语言:javascript
复制
  1.Spring Boot 在启动时扫描项目中的类和包,发现 MyServiceAutoConfiguration 类。
  2.Spring Boot 读取 spring.factories 文件,找到 MyServiceAutoConfiguration 类作为自动装配类。
  3. MyServiceAutoConfiguration 类使用 @EnableConfigurationProperties 注解
  启用 MyServiceProperties 类的配置属性绑定。
  4.MyServiceProperties 类使用 @ConfigurationProperties 注解
  将 application.properties 文件中的 myservice.message 属性绑定到 message 字段。
  5.MyServiceAutoConfiguration 类中的 myService() 方法
  使用 @Bean 和 @ConditionalOnMissingBean 注解定义了一个 MyService 类型的 bean。
  当没有其他 MyService bean 时,Spring Boot 会自动装配这个 bean。
  6.MyService bean 使用 MyServiceProperties 类中的 message 属性值进行初始化。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 自动装配
    • 概念
      • 作用
        • 具体步骤
          • 详细步骤
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档