가끔 스프링 얘기도 해야지.

스프링 빈의 식별자(identifier)를 지정하는 방법은 id와 name이 있다. alias도 있구나. 애노테이션으로 가면 @Component와 스테레오타입 애노테이션, @Named, @Bean(name=)도 있다. 이름을 지정안하고 CoC로 하는 방법(애노테이션과 자바코드)과 스프링이 알아서 대충 지어주는 방법(XML에서의 id생략)도 있다. 스키마의 태그로 지정하는 방법도.  더 있나?

많기도 하다. 스프링은 빈 이름부터 어떻게 지정할지 골라 잡는 재미가.

아무튼 빈의 아이디/이름은 여러 개들 동등한 별칭으로 만들어 사용할 수 있다.  이 중에서 <bean>의 id는 XML ID타입의 제약을 받는다(그러나 막상 테스트해보면 NCName타입이라고 하는데 XML문외한인 나는 뭐가 어떻게 다른지 모르겠다). name은 그런 제약이 없다. 한버에 여러 개를 지정할 수도 있고, URL에서와 같이 특수문자를 쓸 수도 있고, 숫자로 시작할 수도 있다.

참,

그래서 하고 싶은 얘기는 빈의 식별자로 한글을 써도 된다는 것.

예를 들어 다음과 같이 빈을 정의해도 된다.

<bean id=”헬로월드" class=”HelloWorld” />

 

당연히 getBean()으로는 가뿐히 가져올 수 있다.

getBean(“헬로월드", HelloWorld.class);

 

또, 프로퍼티 이름이나 필드 이름을 한글로 해서 이름에 의한 자동와이어링을 적용할 수도 있다. 아예 클래스 이름까지 한글로 해도 될 듯.

@Resource HelloWorld 헬로월드;

 

물론 name 애트리뷰트에서도 사용할 수 있다. 기타 빈 이름 지정 방법에 다 적용된다.

독특한 취향을 가졌거나, 교육할 때 괜찮다 싶거나, 심심하다면 한번쯤 해보기를.

 

아래는 후다닥 만든, 애노테이션을 이용한 초간단 한글 빈 이름 테스트.

public class BeanNameTest {
    @Component("하이") static class Hi {    }

    @Named("하우디") static class Howdy { @Resource Hi 하이; }

    @Configuration static class Config {
        @Bean(name="울랄라")
        public Howdy lala(Hi 하이) {
            Howdy h = new Howdy();
            h.하이 = 하이;
            return h;
        }
    }

    @Test public void hi() {
        AnnotationConfigApplicationContext ac = 
              new AnnotationConfigApplicationContext(Hi.class, Howdy.class, Config.class);

        Hi 하이 = ac.getBean("하이", Hi.class);
        assertThat(하이, is(notNullValue()));

        Howdy h = ac.getBean("하우디", Howdy.class);
        assertThat(h.하이, is(하이));

        Howdy h2 = ac.getBean("울랄라", Howdy.class);
        assertThat(h2.하이, is(하이));
    }
}

Related posts:

  1. Spring 3.0 (58) Static Class를 XML없이 빈으로 등록하기
  2. InsideSpring (1) Annotated Factory Method (@Configuration)을 쓰는 4가지 방법 (1)
  3. Spring 3.0 (55) getBean(Class) 등장
  4. Inside Spring (6) 애노테이션 설정 지원 스프링 웹 테스트용 DispatcherServlet 만들기
  5. Spring 3.0 (56) @Bean 사용의 주의사항
  6. Spring Expressions(SpEL)를 이용한 Mockito Argument Matcher 만들기
  7. InsideSpring (1) Annotated Factory Method (@Configuration)을 쓰는 4가지 방법 (3)
  8. Spring 3.0 EL (Spel)을 이용한 AssertThrows 확장 (1)
  9. 테스트 코드에서 static import를 편하게 넣는 방법
  10. S1A 2008 셋째날 – Spring JavaConfig
  11. Spring 3.0 (54) 드디어 등장한 ConfigurationClassApplicationContext
  12. InsideSpring (1) Annotated Factory Method (@Configuration)을 쓰는 4가지 방법 (2)
  13. 유쾌한 이슈처리 재촉 메일
  14. Inside Spring (5) PropertyPlaceholderConfigurer를 @Bean으로 정의해서는 안되는 이유
  15. Spring 상식퀴즈 (1) – DI 태클하기

Facebook comments:

to “스프링 빈의 이름은 한글로 지어도 된다”

  1. Howdy, i read your blog from time to time and i own a similar one and i was just wondering if you get a lot of spam comments? If so how do you protect against it, any plugin or anything you can advise? I get so much lately it’s driving me crazy so any support is very much appreciated.

  2. macy gucci bags 스프링 빈의 이름은 한글로 지어도 된다 » Toby’s Epril

  3. women’s dress shoes cheap 스프링 빈의 이름은 한글로 지어도 된다 » Toby’s Epril

  4. women nike shoes sale 스프링 빈의 이름은 한글로 지어도 된다 » Toby’s Epril

  5. chung shi shoes 스프링 빈의 이름은 한글로 지어도 된다 » Toby’s Epril

  6. mbt imara shoes 스프링 빈의 이름은 한글로 지어도 된다 » Toby’s Epril

Leave a Reply

(required)

(required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© 2017 Toby's Epril Suffusion theme by Sayontan Sinha