6
spring | ApplicationContext 功能介绍
source link: https://benpaodewoniu.github.io/2022/12/15/spring21/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
ApplicationContext
究竟有哪些功能。
applicationContext
可以看出 applicationContext
继承了下面 4
个接口
MessageSource
- 国际化服务
ResourcePatternResolver
- 匹配资源服务
ApplicationEventPublisher
- 发布事件对象
EnvironmentCapable
- 处理环境信息
MessageSource 国际化服务
在 src/main/resource
中,创建一个 application.yaml
文件内容如下
spring:
messages:
basename: g11n/message
encoding: UTF-8
这是告诉翻译文件在哪里。在 src/main/resource
创建 g11n
文件夹,然后创建两个文件,目录结构如下
-src/main/resource
- application.yaml
- g11n
- message.properties
- message_en.properties
- message_zh.properties
在 message_zh.properties
加上 hi = 你好
然后 run
下面的代码
package com.lou.springboot;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
import java.util.Locale;
/**
* Hello shiyanlou!
*/
@SpringBootApplication
public class Application {
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException {
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(Application.class, args);
System.out.println(configurableApplicationContext.getMessage("hi", null, Locale.CHINA));
}
}
输出正常。
获取资源文件
@SpringBootApplication
public class Application {
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, IOException {
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(Application.class, args);
Resource[] resources = configurableApplicationContext.getResources("classpath:application.properties");
for (Resource resource : resources) {
System.out.println(resource);
}
}
}
获取环境变量
@SpringBootApplication
public class Application {
public static void main(String[] args) throws NoSuchFieldException, IllegalAccessException, IOException {
ConfigurableApplicationContext configurableApplicationContext = SpringApplication.run(Application.class, args);
System.out.println(configurableApplicationContext.getEnvironment().getProperty("java_home")); // 不区分大小写,可以获取环境变量
System.out.println(configurableApplicationContext.getEnvironment().getProperty("spring.datasource.username")); // 获取配置文件的内容
}
}
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK