一、获取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);
}
}