SpringBoot-bean属性绑定

(1)第三方bean属性绑定 :

@ConfigurationProperties(prefix = "指定的配合属性的上级属性")

在配置文件中设置属性 , 属性名必须与实体类的属性名一致

servers:
  ipAddress: 127.0.0.1
  port: 2345
  timeout: -1
  #超时时间 , 设置为-1就是永不超时

在实体类中:

@Component //设置为bean对象 , 在容器初始化的时候 , 加载它
@Data 
@ConfigurationProperties(prefix = "servers") //指定配置文件中的属性的上级属性
public class ServletConfig {
    private String ipAddress;
    private int port;
    private long timeout;
}

这样就可以将配置文件中的属性 , 加载到bean中


@EnableConfigurationProperties(指定实体类的.class文件) : 可以将使用@ConfigurationProperties注解对应的类加载进Spring容器中

@SpringBootApplication
@EnableConfigurationProperties(ServletConfig.class)
public class SpringBoot10ConfigurationApplication {

    public static void main(String[] args) {
        ConfigurableApplicationContext run = SpringApplication.run(SpringBoot10ConfigurationApplication.class, args);
        ServletConfig bean = run.getBean(ServletConfig.class);
        System.out.println(bean);
    }
}

这个注解是告诉Spring我要去加载一组配置 , 交给Spring去进行管理 , 所以 , 这个注解也可以完成bean的创建 ,

注意 :

  • 使用这个注解的话 , 如果实体类中设置了 @Component注解的话 , 会造成冲突 , 因为会生成两个bean , 进入Spring容器 ,

(2)松散绑定 :

@ConfigurationProperties绑定属性支持属性名宽松绑定

绑定前缀命名规范 : 仅能使用纯小写字母,数字,下划线作为合法字符

无论你写下边的什么格式 , 都可以识别, 但是字母一定要一一对应

配置文件的书写格式:

名称格式
驼峰ipAddress
unlineip_address
烤肉串模式 (推荐使用)ip-address
常量模式IP_ADDRESS

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然可以!以下是一个简单的示例,展示了如何手写一个Spring Boot Starter: 首先,创建一个 Maven 项目,并添加以下依赖项: ```xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <version>2.5.4</version> </dependency> </dependencies> ``` 接下来,创建一个自定义的自动配置类,用于配置你的 Starter: ```java @Configuration @EnableConfigurationProperties(MyStarterProperties.class) public class MyStarterAutoConfiguration { private final MyStarterProperties properties; public MyStarterAutoConfiguration(MyStarterProperties properties) { this.properties = properties; } // 在此处定义你的自动配置逻辑 @Bean public MyStarterService myStarterService() { return new MyStarterService(properties); } } ``` 然后,创建一个属性类,用于将外部配置绑定属性上: ```java @ConfigurationProperties("my.starter") public class MyStarterProperties { private String message; // 提供 getter 和 setter } ``` 最后,创建一个自定义的服务类,该服务类将在你的 Starter 中使用: ```java public class MyStarterService { private final MyStarterProperties properties; public MyStarterService(MyStarterProperties properties) { this.properties = properties; } public void showMessage() { System.out.println(properties.getMessage()); } } ``` 现在,你的 Spring Boot Starter 已经准备就绪了!你可以将其打包并使用在其他 Spring Boot 项目中。在其他项目的 `pom.xml` 文件中,添加你的 Starter 依赖: ```xml <dependencies> <dependency> <groupId>com.example</groupId> <artifactId>my-starter</artifactId> <version>1.0.0</version> </dependency> </dependencies> ``` 然后,在你的应用程序中使用 `MyStarterService`: ```java @SpringBootApplication public class MyApplication implements CommandLineRunner { private final MyStarterService myStarterService; public MyApplication(MyStarterService myStarterService) { this.myStarterService = myStarterService; } public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } @Override public void run(String... args) throws Exception { myStarterService.showMessage(); } } ``` 这样,你就成功地创建了一个简单的 Spring Boot Starter!当其他项目引入你的 Starter 并运行时,将输出预定义的消息。 当然,这只是一个简单的示例,真实的 Starter 可能包含更多的配置和功能。你可以根据自己的需求进行扩展和定制。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值