본문 바로가기
▶ Back-End/Java

@EventListener Example

by 오늘도 코딩 2021. 5. 18.
728x90
반응형

*자세한 설명 생략

 

 

▷ Example

-  Application Context 초기화 및 수정 시 파일을 읽어 오는 예제

 

@Component // Class를 Bean으로 등록
public class TestGetName {

    @Getter
    @Setter
    private String USER_NAME = ""; 

    // 애플리케이션 시작을 감지
    // @EventListener : 이벤트가 발생했을때 이벤트를 수신해서 처리
    // ContextRefreshedEvent : Application Context를 초기화 했거나 수정했을때 발생
    @EventListener 
    public void onApplicationEvent(ContextRefreshedEvent event) {

        try{
            // 파일 찾을 경로
            File searchPath = new File("C:/testFolder/");

            // 파일 찾기
            FilenameFilter filter = new FilenameFilter() {
                public boolean accept(File file, String name) {
                    return name.startsWith("TestTxt.txt");
                }
            };

            // 찾은 파일
            File files[] = searchPath.listFiles(filter);

            // 찾은 파일이 있으면
            if(files != null && files.length > 0) {
                // 찾은 파일 읽기
                // 테스트 파일은 한 줄만 존재
                BufferedReader br = new BufferedReader(new FileReader(files[0]));
                String line = br.readLine();
                br.close();

                // String -> JsonObj
                JSONParser parser = new JSONParser();
                JSONObject jsonObj = (JSONObject) parser.parse(line);

                // 유저 이름
                USER_NAME = (String) jsonObj.get("name");
            }
        } catch(Exception e){
            e.printStackTrace();
        }
    }
}

public class MainTest {

    @Autowired // Bean 자동 주입
    private static TestGetName testGetName;

    public static void main(String[] agrs) {
        
        System.out.println(testGetName.getUSER_NAME());
    }
}
/*
    결과 : 
        홍길동
 */

 

 

▷ 관련 글

 

파일 생성하기

파일의 내용을 채워 원하는 경로에 파일 생성 *원하는 경로에 폴더가 존재해야 한다. *폴더 유/무에 따라 폴더를 생성하는 로직은 반영 안함 ▷ Example - 파일의 내용은 json 형태이고, 한 줄만 있다

coding-today.tistory.com

 

파일 검색 후 파일 읽기

원하는 경로의 파일명을 검색하여 값을 추출 *미리 파일이 생성돼 있어야 한다. ▷ Example - 파일의 내용은 json 형태이고, 한 줄만 있다고 가정 public void testReadFile(){ try { // 파일 찾을 경로 File search

coding-today.tistory.com

 

 

728x90
728x90

'▶ Back-End > Java' 카테고리의 다른 글

비동기처리(CompletableFuture.allOf())  (0) 2021.06.23
Object List 정렬(Comparator.comparing())  (0) 2021.06.02
파일 생성하기  (0) 2021.05.13
파일 검색 후 파일 읽기  (0) 2021.05.13
날짜 비교  (0) 2021.05.04

댓글