본문 바로가기
프로그래밍/Spring

Spring / 외부 파일을 이용한 설정 - 프로퍼티 파일 직접 이용

by 소소로드 2018. 4. 8.

[외부 파일을 이용한 설정]

: 프로퍼티 파일 직접 이용하기




admin.properties

1
2
3
admin.id=admin
admin.pw=12345
 
cs



admin_sub.properties

1
2
3
sub_admin.id=sub_admin
sub_admin.pw=67890
 
cs




ctx_AdminSub.xml

1
2
3
4
5
6
7
8
9
10
11
<context:property-placeholder 
    location="classpath:admin.properties, classpath:admin_sub.properties"/>
    
<bean id="adminConnection" class="com.yul.ex02_subProperties.AdminConnection">
        <property name="adminId" value="${admin.id}"/>
        <property name="adminpw" value="${admin.pw}"/>
        <property name="sub_adminId" value="${sub_admin.id}"/>
        <property name="sub_adminPw" value="${sub_admin.pw}"/>
    </bean>
 
</beans>
cs

*

namespace를 context로 설정해준다.

AdminConnection.java의 필드값에 맞게 지정해주는데

${admin.id} 이렇게 표현언어를 써줘야 admin이라는 객체의 id 값을 가져온다.





AdminConnection.java

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
public class AdminConnection implements InitializingBean, DisposableBean {
    
    private String adminId;
    private String adminpw;
    private String sub_adminId;
    private String sub_adminPw;
    
    
    public String getAdminId() {
        return adminId;
    }
 
    public void setAdminId(String adminId) {
        this.adminId = adminId;
    }
 
    public String getAdminpw() {
        return adminpw;
    }
 
    public void setAdminpw(String adminpw) {
        this.adminpw = adminpw;
    }
 
    public String getSub_adminId() {
        return sub_adminId;
    }
 
    public void setSub_adminId(String sub_adminId) {
        this.sub_adminId = sub_adminId;
    }
 
    public String getSub_adminPw() {
        return sub_adminPw;
    }
 
    public void setSub_adminPw(String sub_adminPw) {
        this.sub_adminPw = sub_adminPw;
    }
 
    @Override
    public void destroy() throws Exception {
        System.out.println("destroy() 실행");
    }
 
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("afterPropertiesSet() 실행");
        
    }
}
cs




MainClass.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class MainClass {
 
    public static void main(String[] args) {
 
        AbstractApplicationContext ctx 
            = new GenericXmlApplicationContext("classpath:ctx_AdminSub.xml");
 
        AdminConnection connection = ctx.getBean("adminConnection", AdminConnection.class);
        System.out.println("Admin Id : " + connection.getAdminId());
        System.out.println("Admin PW : " + connection.getAdminpw());
        System.out.println("SubAdmin Id : " + connection.getSub_adminId());
        System.out.println("SubAdmin PW : " + connection.getSub_adminPw());
        
        ctx.close();
    }
 
}
cs




*

결과


afterPropertiesSet() 실행

Admin Id : admin

Admin PW : 12345

SubAdmin Id : sub_admin

SubAdmin PW : 67890


destroy() 실행