好用的 Spring Boot 内置工具类,你用过哪些?

简介: 【2月更文挑战第6天】

Spring Boot 是一个流行的Java开发框架,提供了丰富的内置工具类来简化开发过程。这些内置工具类提供了各种功能和特性,帮助开发人员提高生产力并加速应用程序的开发。本文将介绍一些好用的 Spring Boot 内置工具类,以及它们的功能和使用方法。

1. SpringApplication

SpringApplication 类是 Spring Boot 应用程序的入口点,提供了各种方法来启动和管理应用程序。通过 SpringApplication,您可以轻松地创建一个可执行的、独立的 Spring Boot 应用程序,并配置各种属性和选项。例如,您可以使用 SpringApplication.run() 方法启动应用程序,还可以通过 SpringApplication.setDefaultProperties() 方法设置默认属性。

public static void main(String[] args) {
   
   
    SpringApplication.run(YourApplication.class, args);
}

2. CommandLineRunnerApplicationRunner

CommandLineRunnerApplicationRunner 是接口,可以用于在 Spring Boot 应用程序启动后执行一些任务。它们提供了 run() 方法,您可以在其中编写需要在应用程序启动后立即执行的代码。这些任务可以是初始化数据库、加载配置文件、启动后台线程等。

@Component
public class MyCommandLineRunner implements CommandLineRunner {
   
   

    @Override
    public void run(String... args) throws Exception {
   
   
        // 执行初始化任务
    }
}

3. Environment

Environment 是 Spring Boot 提供的一个接口,用于获取应用程序的配置属性。它提供了各种方法来获取属性值、判断属性是否存在、获取活动的配置文件等。您可以使用 Environment 来获取配置文件中的属性,或者通过 @Value 注解来注入属性值。

@Autowired
private Environment environment;

public void someMethod() {
   
   
    String property = environment.getProperty("my.property");
    // ...
}

4. CommandLinePropertySource

CommandLinePropertySource 是一个特殊的 PropertySource,用于从命令行参数中读取配置属性。当您在启动应用程序时通过命令行传递参数时,CommandLinePropertySource 可以帮助您将这些参数转化为配置属性。

public static void main(String[] args) {
   
   
    SpringApplication application = new SpringApplication(YourApplication.class);
    application.setDefaultProperties(Collections.singletonMap("my.property", "default-value"));

    CommandLinePropertySource commandLinePropertySource = new SimpleCommandLinePropertySource(args);
    application.getSources().add(commandLinePropertySource);

    application.run(args);
}

5. RelaxedPropertyResolver

RelaxedPropertyResolver 是一个用于处理松散(非严格)配置属性的工具类。它可以帮助您以更灵活的方式读取配置属性,例如可以忽略属性名的大小写、使用下划线或破折号作为属性分隔符等。

@Autowired
private RelaxedPropertyResolver propertyResolver;

public void someMethod() {
   
   
    String value = propertyResolver.getProperty("my.property");
    // ...
}

6. Profile

Profile 是一个用于定义和管理应用程序配置文件的机制。通过使用不同的配置文件,您可以根据不同的环境(如开发、测试、生产)为应用程序提供不同的配置属性。您可以通过 @Profile 注解来标记特定的组件或配置类,以指定它们在特定的配置文件中生效。

@Configuration
@Profile("dev")
public class DevelopmentConfiguration {
   
   
    // ...
}

@Configuration
@Profile("prod")
public class ProductionConfiguration {
   
   
    // ...
}

7. YamlPropertiesFactoryBean

YamlPropertiesFactoryBean 是一个用于加载 YAML 格式配置文件的工具类。通过使用 YamlPropertiesFactoryBean,您可以方便地将 YAML 格式的配置文件加载为 Properties 对象,并在应用程序中使用。

@Configuration
public class MyConfiguration {
   
   

    @Bean
    public Properties yamlProperties() {
   
   
        YamlPropertiesFactoryBean factoryBean = new YamlPropertiesFactoryBean();
        factoryBean.setResources(new ClassPathResource("config.yml"));
        return factoryBean.getObject();
    }
}

8. Banner

Banner 是一个用于在应用程序启动时显示自定义横幅的工具类。您可以使用 ASCII 艺术字符、公司Logo等来创建自己的横幅,并将其配置到应用程序中。

public static void main(String[] args) {
   
   
    SpringApplication application = new SpringApplication(YourApplication.class);
    application.setBanner(new MyCustomBanner());
    application.run(args);
}

结论

Spring Boot 提供了许多强大且易于使用的内置工具类,用于简化开发和管理应用程序。本文介绍了一些好用的 Spring Boot 内置工具类,包括 SpringApplicationCommandLineRunnerEnvironment 等。这些工具类能够提高开发效率、简化配置和提供更好的用户体验。希望本文对您在使用 Spring Boot 过程中有所帮助,并能够充分利用这些内置工具类来构建高效的应用程序。

目录
相关文章
|
Java Spring
解决Spring工具类BeanUtils copyProperties方法复制null的问题
解决Spring工具类BeanUtils copyProperties方法复制null的问题
605 0
|
3月前
|
缓存 小程序 Java
|
4月前
|
Java Apache Spring
Spring BeanUtils 2、Cglib BeanCopier 3、Apache BeanUtils 4、Apache PropertyUtils 5、Dozer 那么,我们到底应该选择哪种工具类更加合适呢?为什么Java开发手册中提到禁止使用Apache BeanUtils呢
Spring BeanUtils 2、Cglib BeanCopier 3、Apache BeanUtils 4、Apache PropertyUtils 5、Dozer 那么,我们到底应该选择哪种工具类更加合适呢?为什么Java开发手册中提到禁止使用Apache BeanUtils呢
61 0
|
6月前
|
存储 NoSQL Java
Spring Boot 如何编写一个通用的 Redis 工具类
Spring Boot 如何编写一个通用的 Redis 工具类
179 0
Spring Boot 如何编写一个通用的 Redis 工具类
|
6月前
|
Java Spring
【Spring】org.springframework.util.StringUtils工具类中commaDelimitedListToStringArray的使用
【Spring】org.springframework.util.StringUtils工具类中commaDelimitedListToStringArray的使用
36 0
|
8月前
|
Java Spring
动态获取spring管理的bean工具类
动态获取spring管理的bean工具类
115 0
|
消息中间件 JavaScript 小程序
别再自己瞎写工具类了,Spring Boot 内置工具类应有尽有, 建议收藏!!
别再自己瞎写工具类了,Spring Boot 内置工具类应有尽有, 建议收藏!!
|
Java 开发者 Spring
Spring断言工具类 “Assert” 的基本操作!
Spring断言工具类 “Assert” 的基本操作!
169 0
Spring断言工具类 “Assert” 的基本操作!
|
Java Spring
Spring Boot 封装文件上传工具类
Spring Boot 封装文件上传工具类
375 0
|
Java Spring
Spring自带工具类(断言、ObjectUtils、FileCopyUtils、ResourceUtils、StreamUtils、ReflectionUtils、AopUtils、AopCont)
Spring自带工具类(断言、ObjectUtils、FileCopyUtils、ResourceUtils、StreamUtils、ReflectionUtils、AopUtils、AopCont)
Spring自带工具类(断言、ObjectUtils、FileCopyUtils、ResourceUtils、StreamUtils、ReflectionUtils、AopUtils、AopCont)