首页 > 其他分享 >Spring注解开发入门(五)@Value注解从properties文件读取值,config类加载properties文件

Spring注解开发入门(五)@Value注解从properties文件读取值,config类加载properties文件

时间:2022-10-23 02:33:06浏览次数:50  
标签:文件 oxygen org Value import 注解 com properties

要想让@Value注解获得properties文件当中的值,第一步需要Spring容器加载properties文件。

这就需要在配置类里面使用@PropertySoource注解来知道properties文件的路径了。

配置类代码:

package com.oxygen.config;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@ComponentScan({"com.oxygen.dao","com.oxygen.service"})
@PropertySource("jdbc.properties")
public class SpringConfig {
}

 

此时@Value注解的写法是:

@Value("${jdbc.mysql.password}")
private String password;

 

示例代码:

package com.oxygen.service.impl;

import com.oxygen.dao.BookDao;
import com.oxygen.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class BookServiceImpl implements BookService {

    @Value("2011000991")
    private int bookSN;

    @Value("${jdbc.mysql.password}")
    private String password;

    //注意:没有setter方法Autowired也能自动装配
    @Autowired
    @Qualifier("bookDao")
    private BookDao bookDao;

    public void save() {
        System.out.println("Book Service save...");
        System.out.println("Book SN:"+bookSN);
        System.out.println("数据库密码:"+password);
        bookDao.save();
    }
}

 

@PropertySource注解的不能使用星号(*)作为properties文件的通配符,因为没有任何文件可以用星号作为文件名。

多个properties文件要用数组各种,中间用逗号隔开。

@PropertySource可以加classpath:

@Configuration
@ComponentScan({"com.oxygen.dao","com.oxygen.service"})
@PropertySource("classpath:jdbc.properties")
public class SpringConfig {
}

  

标签:文件,oxygen,org,Value,import,注解,com,properties
From: https://www.cnblogs.com/majestyking/p/16817783.html

相关文章