html5网站正在建设中模板下载,东莞东城社保局电话,江阴企业网站建设哪家好,wordpress 下载地址PropertySource介绍
PropertySource是Spring框架中的一个注解#xff0c;主要用于Java配置类中#xff0c;用于引入额外的属性文件#xff0c;以便在Spring应用上下文中使用这些属性。
在Spring 3.1引入Java配置后#xff0c;我们可以通过Configuration注解的类和Bean注解…PropertySource介绍
PropertySource是Spring框架中的一个注解主要用于Java配置类中用于引入额外的属性文件以便在Spring应用上下文中使用这些属性。
在Spring 3.1引入Java配置后我们可以通过Configuration注解的类和Bean注解的方法来进行组件扫描和依赖注入配置。但是对于一些外部化配置如数据库连接信息、邮件服务器配置等我们通常会放在properties或yml文件中这时就可以使用PropertySource来加载这些属性文件。
使用示例
Configuration
PropertySource(classpath:application.properties)
public class AppConfig {Autowiredprivate Environment env;Beanpublic DataSource dataSource() {DriverManagerDataSource dataSource new DriverManagerDataSource();dataSource.setDriverClassName(env.getProperty(jdbc.driverClassName));dataSource.setUrl(env.getProperty(jdbc.url));dataSource.setUsername(env.getProperty(jdbc.username));dataSource.setPassword(env.getProperty(jdbc.password));return dataSource;}
} PropertySource源码
Target(ElementType.TYPE)
Retention(RetentionPolicy.RUNTIME)
Documented
Repeatable(PropertySources.class)
public interface PropertySource {String name() default ;String[] value();boolean ignoreResourceNotFound() default false;String encoding() default ;Class? extends PropertySourceFactory factory() default PropertySourceFactory.class;
}
源代码截图 PropertySource属性介绍
name表示加载的资源的名称如果为空则会根据加载的配置文件自动生成一个名称。value表示加载的资源的路径这个路径可以是类路径也可以是文件路径。ignoreResourceNotFound表示当配置文件未找到时是否忽略文件未找到的错误。默认值为false也就是说当未找到配置文件时Spring启动就会报错。encoding表示解析配置文件使用的字符集编码。factory表示读取对应配置文件的工厂类默认的工厂类是PropertySourceFactory。
PropertySource使用场景
配置文件的加载在 Spring 应用程序中通常需要加载一些配置文件如数据库连接信息、服务器端口等。使用 PropertySource 注解可以方便地加载这些配置文件并将它们注入到 Spring 应用程序上下文中。多环境配置在开发和部署应用程序时可能需要针对不同的环境如开发环境、测试环境、生产环境等进行不同的配置。使用 PropertySource 注解可以方便地加载不同环境的配置文件并根据环境变量或配置文件名来选择加载哪个配置文件。动态配置在某些情况下可能需要在运行时动态地更改配置信息。使用 PropertySource 注解可以方便地加载动态配置文件并将它们注入到 Spring 应用程序上下文中。属性文件的组织在属性文件中可能需要使用前缀来组织属性。使用 PropertySource 注解的 prefix 属性可以指定属性文件中的前缀以便在属性文件中使用前缀来组织属性。 PropertySource测试示例代码
PropertySource配置类
package com.yang.SpringTest.annotation.propertySourceLearn;import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;/*** p PropertySource配置类/p** author By: chengxuyuanshitang* Package com.yang.SpringTest.annotation.propertySourceLearn* Ceate Time 2024-03-15 17:04*/
Configuration
PropertySource(value classpath:propertySourceDemo.properties)
public class PropertySourceConfig {}propertySourceDemo.properties
whochengxuyuanshitangdoLearn spring
PropertySourceTest测试类
package com.yang.SpringTest.annotation.propertySourceLearn;import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.core.env.ConfigurableEnvironment;/*** pPropertySource测试类/p** author By: chengxuyuanshitang* Package com.yang.SpringTest.annotation.propertySourceLearn* Ceate Time 2024-03-15 17:07*/public class PropertySourceTest {public static void main(String[] args) {AnnotationConfigApplicationContext context new AnnotationConfigApplicationContext(PropertySourceConfig.class);ConfigurableEnvironment environment context.getEnvironment();System.out.println(who is ? : environment.getProperty(who));System.out.println(do something ? : environment.getProperty(do));}
}运行结果