Spring3.0下外部文件propereties值的注入

    科技2025-08-13  12

    Spring3.0下外部文件propereties值的注入

    新建properties配置文件: jdbc-config.properties

    jdbc.driverClassName=com.mysql.jdbc.Driver

    1.配置特殊的Bean加载外部文件

    1.1 PropertySourcesPlaceholderConfigurer

    Bean配置

    @Configuration public class ApplicationConf { //注册特殊的Bean PropertySourcesPlaceHolderConfigure @Bean public PropertySourcesPlaceholderConfigurer getProperties(){ PropertySourcesPlaceholderConfigurer placeholderConfigurer = new PropertySourcesPlaceholderConfigurer(); //将配置文件路径转换成类路径 ClassPathResource classPathResource = new ClassPathResource("jdbc-config.properties"); placeholderConfigurer.setLocations(classPathResource); return placeholderConfigurer; } //获取配置文件中的值 @Bean public String str1(@Value("${jdbc.driverClassName}") String driver){ return driver; } }

    测试代码:

    public class Demo1 { public static void main(String[] args) { AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(ApplicationConf.class); String str1 = context.getBean("str1",String.class); System.out.println(str1); } }

    显示结果:

    2.使用注解进行注入

    对应xml文件中标签: <context:property-placeholder location="classpath:properties/jdbc-info.properties"></context:property-placeholder> 在类上增加注解@PropertySource("classpath:config/jdbc-config.properties") 这里注意classpath都是小写

    @Configuration @PropertySource("classpath:jdbc-config.properties") public class ApplicationConf { //获取配置文件中的值 @Bean public String str1(@Value("${jdbc.driverClassName}") String driver){ return driver; } }

    此注解的优势:

    配置相对减少支持将参数移出到类的私有成员变量上 @Configuration @PropertySource("classpath:jdbc-config.properties") public class ApplicationConf { //私有变量修饰,方法体内直接使用 @Value("${jdbc.driverClassName}") private String driver; //获取配置文件中的值 @Bean public String str1(){ return driver; } }
    Processed: 0.013, SQL: 8