Whiteship's Note


[스프링 3.0] 스프링 bean과 일반 자바 객체가 호출하는 @Bean 메서드의 차이

Spring/3.0 : 2009.12.11 20:51


public class JavaConfigTest {

    AnnotationConfigApplicationContext ac;

    @Before
    public void setUp(){
        ac = new AnnotationConfigApplicationContext(AppConfig.class);
        assertThat(ac, is(notNullValue()));
    }

    @Test
    public void getBean(){
        SampleBean bean1 = ac.getBean("sampleBean", SampleBean.class);
        SampleBean bean2 = ac.getBean("sampleBean", SampleBean.class);
        assertThat(bean1, is(notNullValue()));
        assertThat(bean2, is(notNullValue()));
        assertThat(bean1, is(bean2));

        AppConfig config1 = new AppConfig();
        SampleBean bean3 = config1.sampleBean();
        assertThat(bean3, is(not(bean2)));

        AppConfig config2 = ac.getBean("appConfig", AppConfig.class);
        SampleBean bean4 = config2.sampleBean();
        assertThat(bean4, is(bean2));
    }

}

스프링 3.0 애노테이션 기반 설정을 익히기 위해서 처음 만들어본 테스트입니다. 이 테스트에서 알 수 있는 건 바로 이 글의 제목에서처럼 @Bean이 붙어있는 메서드를 어떤 객체를 이용해서 호출하느냐에 따라 그 결과가 다를 수 있다는 겁니다.

@Configuration
public class AppConfig {

    @Bean
    public SampleBean sampleBean(){
        return new SampleBean();
    }
}

이건 설정한 빈이고 SampleBean은 뭐 암거나;; @_@;

결론은 new 로 만든 AppConfig와 스프링에서 가져온 AppConfig의 @Bean이 붙은 메서드가 반환해주는 값이다르다는 겁니다. 전자는 일반적인 Java 문맥대로 sampleBean()에서 new SampleBean()으로 새로운 객체를 만들어서 받은 것이고, 후자는 sampleBean() 메서드 호출을 가로채서 기존의 bean을 반환해준 겁니다.

이 경우는 매우 간단한 경우에 속합니다. 하나는 스프링이 관리하는 빈이었고, 하나는 일반 자바 객체였으니까요. 그런데 만약에 둘 다 스프링의 빈이라면? 그 중에 하나는 @Configuration, 다른 하나는 @Component라면?

@Component로 설정한 빈 내부에 위와 똑같은 설정이 들어있다면? 반환하는 객체의 값이 조금 다르나면??

빈 스캔은 어찌하나?

정말 복잡하군요;; 하나씩 차근 차근 해보겠습니다.



top


[빈둥 빈둥] 닌텐도Wii 4.2k V2 홈브류 설치



감기 때문에 집에서 쉬는데 공부도 안 되고(코가 맹맹 거리면 머리가 웅웅 거리면서 무언가에 집중하기가 힘들어집니다.) 게임기나 만지작 거려야지 결심했습니다. (-- );;;

그런데 왜들 그렇게 정보를 꼭꼭 숨겨놓고 사시는지... 닌텐도 Wii 4.2k V2로 아무리 구글링을 해도 공개된 정보를 찾을 수가 없었습니다. 하지만 아주 없는 건 아니었습니다. 결국은 찾았죠. 영문자료 한 개와 한글 자료 두 개. 한글 자료 두 개는 그나마 이미 지워지거나 옮겨진 것이고 검색엔진의 '저장된 페이지 보기' 기능을 이용해서 볼 수 있었습니다.

기본라인: http://sites.google.com/site/completesg/hacking-guide/korea-4_2
파판: http://74.125.155.132/search?q=cache:kwRwCgmmwvoJ:www.finalfantasia.com/fantasybbs/board.php%3Fbo_table%3Dntdbbs%26wr_id%3D45713+Wii+4.2k+v2+%ED%99%88%EB%B8%8C%EB%A5%98+%EB%B0%8F+%ED%95%98%EB%93%9C%EB%A1%9C%EB%8D%94+%EC%84%A4%EC%B9%98&cd=1&hl=ko&ct=clnk&gl=kr&client=firefox-a

이 두 개를 섞어서 설치했더니 동작했습니다.

1. 파판 링크의 첫 번째 단계인 "홈 브류 설치"를 그대로 따라합니다. 별 문제 없이 잘 됩니다.

2. 파판 링크의 두 번째 단계 "기타 설치"는 그대로 따라하면 Trucha Bug Restorer에서 문제가 생깁니다.

3. 거기서 부터는 기본 라인과 파판을 짬뽕하여 제 맘대로 설치했습니다.
(맨 마지막 Wad Manager로 usb loader gx를 설치하기 전까지 모든 설치는 홈 브류 채널에 들어가서 합니다. 즉, SD 카드로 부팅하지 않았습니다.)

3-1. 기본라인 1~7 단계를 진행합니다.
3-2. 기본라인 8~9 단계를 진행합니다.
3-3. 파판링크의 '기타 설치' 11 단계를 진행합니다.
3-4. 기본라인의 11-12 단계를 진행합니다.
3-5. 파판링크의 '기타 설치' 14~16 단계를 진행합니다. (이 때만 SD 카드로 들어갔는데;; 이것 마저도 그냥 BHC에서 해도 될 것 같기도;;;)

끝난것 같지만 이제 시작입니다;;

Usb loader 설정해줘야 게임이 돌아가지 그냥 두면 게임이 안 돌아가고 검은 화면만 나오더군요. 마치 해킹한 PSP에서 커펌 버전이 낮다고 안 돌아가는 게임들처럼 말이죠; 게다가 게임 구해야지; 외장하드는 포맷해야지 덩덩덩;;

http://kws1070.tistory.com/46

위 링크를 기본으로 참조하되, 애플리케이션은 위 링크에 있는 걸 받지 마시고, 검색해서 최신 버전을 받으셔야 될 겁니다.

ps:  구글이 짱일세... 저장된 페이지 보기라... 캬..
top