Springboot获取详解

一、获取Springboot版本信息

1、通过pom.xml文件获取版本信息

<properties>
    <java.version>1.8</java.version>
    <spring-boot.version>1.5.22.RELEASE</spring-boot.version>
</properties>

2、通过Java代码获取版本信息

@SpringBootApplication
public class DemoApplication implements CommandLineRunner {

    @Autowired
    private Environment environment;

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(DemoApplication.class);
        app.run(args);
    }

    @Override
    public void run(String... args) throws Exception {
        System.out.println("Spring Boot version: " + environment.getProperty("spring-boot.version"));
    }
}

二、获取配置文件属性值

1、通过@Value注解获取单个属性值

@Service
public class MyService {
    @Value("${my.property}")
    private String myProperty;

    public String getMyProperty() {
        return myProperty;
    }
}

2、通过@ConfigurationProperties注解获取多个属性值

@ConfigurationProperties(prefix = "my")
public class MyProperties {
    private String property1;
    private String property2;

    public String getProperty1() {
        return property1;
    }

    public void setProperty1(String property1) {
        this.property1 = property1;
    }

    public String getProperty2() {
        return property2;
    }

    public void setProperty2(String property2) {
        this.property2 = property2;
    }
}

@Service
public class MyService {
    private MyProperties properties;

    @Autowired
    public MyService(MyProperties properties) {
        this.properties = properties;
    }

    public MyProperties getProperties() {
        return properties;
    }
}

三、获取Bean对象

1、通过@Autowired注解获取Bean对象

@Service
public class MyService {

    @Autowired
    private MyObject myObject;

    public MyObject getMyObject() {
        return myObject;
    }
}

2、通过@Bean注解创建Bean对象

@Configuration
public class MyConfiguration {

    @Bean
    public MyObject myObject() {
        return new MyObject();
    }
}

3、通过@ConditionalOnClass注解创建Bean对象

@Configuration
@ConditionalOnClass(MyOtherObject.class)
public class MyConfiguration {

    @Bean
    public MyObject myObject() {
        return new MyObject();
    }
}

四、获取Springboot启动器依赖

1、通过pom.xml文件获取依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>{version}</version>
</dependency>

2、通过Maven仓库搜索获取依赖信息

访问地址:https://mvnrepository.com/app/search?q=spring-boot-starter-web

3、通过Spring Initializr获取依赖信息

访问地址:https://start.spring.io/

五、获取Springboot启动时间

1、通过SpringApplicationRunListener获取启动时间

public class MyApplicationRunListener implements SpringApplicationRunListener {

    private final long startTime = System.currentTimeMillis();

    public MyApplicationRunListener(SpringApplication application, String[] args) {
    }

    @Override
    public void starting() {
    }

    @Override
    public void started(ConfigurableApplicationContext context) {
        System.out.println("Spring Boot started in " + (System.currentTimeMillis() - startTime) + " ms");
    }

    @Override
    public void running(ConfigurableApplicationContext context) {
    }

    @Override
    public void failed(ConfigurableApplicationContext context, Throwable exception) {
    }
}

public class MyApplicationRunListenerFactory implements SpringApplicationRunListenerFactory {

    @Override
    public SpringApplicationRunListener createSpringApplicationRunListener(SpringApplication application, String[] args) {
        return new MyApplicationRunListener(application, args);
    }
}

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(DemoApplication.class);
        app.addListeners(new MyApplicationRunListenerFactory());
        app.run(args);
    }
}

2、通过@EventListener注解获取启动时间

@SpringBootApplication
public class DemoApplication {

    @EventListener(ApplicationReadyEvent.class)
    public void afterStartup() {
        Instant endTime = Instant.now();
        Instant startTime = DemoApplication.startTime;
        Duration duration = Duration.between(startTime, endTime);
        System.out.println("Spring Boot started in " + duration.toMillis() + " ms");
    }

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

原创文章,作者:ZMURC,如若转载,请注明出处:https://www.506064.com/n/331714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
ZMURCZMURC
上一篇 2025-01-20 14:10
下一篇 2025-01-20 14:10

相关推荐

  • 从ga角度解读springboot

    springboot作为目前广受欢迎的Java开发框架,其中的ga机制在整个开发过程中起着至关重要的作用。 一、ga是什么 ga即Group Artifacts的缩写,它是Mave…

    编程 2025-04-29
  • SpringBoot Get方式请求传参用法介绍

    本文将从以下多个方面对SpringBoot Get方式请求传参做详细的阐述,包括URL传参、路径传参、请求头传参、请求体传参等,帮助读者更加深入地了解Get请求方式下传参的相关知识…

    编程 2025-04-27
  • SpringBoot如何设置不输出Info日志

    本篇文章将带您了解如何在SpringBoot项目中关闭Info级别日志输出。 一、为什么要关闭Info日志 在开发中,我们经常会使用Log4j、Logback等框架来输出日志信息,…

    编程 2025-04-27
  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25

发表回复

登录后才能评论