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/zh-hant/n/331714.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
ZMURC的頭像ZMURC
上一篇 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

發表回復

登錄後才能評論