好用的 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常用工具类
Spring框架下自带了丰富的工具类,在我们开发时可以简化很多工作: 1.Resource访问文件资源: 具体有: ResourceUtils.getFile(url); FileSystemResource(); ClassPathResource(); ServletContextResource(application,url); 2.
1488 0
|
10月前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
1186 3
|
10月前
|
JavaScript Java Maven
【SpringBoot(二)】带你认识Yaml配置文件类型、SpringMVC的资源访问路径 和 静态资源配置的原理!
SpringBoot专栏第二章,从本章开始正式进入SpringBoot的WEB阶段开发,本章先带你认识yaml配置文件和资源的路径配置原理,以方便在后面的文章中打下基础
659 4
|
缓存 JSON 前端开发
第07课:Spring Boot集成Thymeleaf模板引擎
第07课:Spring Boot集成Thymeleaf模板引擎
1030 0
第07课:Spring Boot集成Thymeleaf模板引擎
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1454 0
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
1381 0
|
Prometheus 监控 Cloud Native
Spring Boot 可视化监控
本文介绍了如何通过Spring Actuator、Micrometer、Prometheus和Grafana为Spring Boot应用程序添加监控功能。首先创建了一个Spring Boot应用,并配置了Spring Actuator以暴露健康状态和指标接口。接着,利用Micrometer收集应用性能数据,并通过Prometheus抓取这些数据进行存储。最后,使用Grafana将Prometheus中的数据可视化,展示在精美的仪表板上。整个过程简单易行,为Spring Boot应用提供了基本的监控能力,同时也为后续扩展更详细的监控指标奠定了基础。
1911 2
|
Java Spring
SpringBoot自动配置原理
本文深入解析了SpringBoot的核心功能——自动配置,重点探讨了`org.springframework.boot.autoconfigure`及相关注解的工作机制。通过分析`@SpringBootApplication`、`@EnableAutoConfiguration`等注解,揭示了SpringBoot如何基于类路径和条件自动装配Bean
757 9
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于注解的整合
本文介绍了Spring Boot集成MyBatis的两种方式:基于XML和注解的形式。重点讲解了注解方式,包括@Select、@Insert、@Update、@Delete等常用注解的使用方法,以及多参数时@Param注解的应用。同时,针对字段映射不一致的问题,提供了@Results和@ResultMap的解决方案。文章还提到实际项目中常结合XML与注解的优点,灵活使用两者以提高开发效率,并附带课程源码供下载学习。
1198 0
|
XML Java 数据库连接
微服务——SpringBoot使用归纳——Spring Boot集成MyBatis——基于 xml 的整合
本教程介绍了基于XML的MyBatis整合方式。首先在`application.yml`中配置XML路径,如`classpath:mapper/*.xml`,然后创建`UserMapper.xml`文件定义SQL映射,包括`resultMap`和查询语句。通过设置`namespace`关联Mapper接口,实现如`getUserByName`的方法。Controller层调用Service完成测试,访问`/getUserByName/{name}`即可返回用户信息。为简化Mapper扫描,推荐在Spring Boot启动类用`@MapperScan`注解指定包路径避免逐个添加`@Mapper`
1137 0