복붙노트

[SPRING] 컨텍스트 : annotation-config가 @AutoWired의 대안입니까?

SPRING

컨텍스트 : annotation-config가 @AutoWired의 대안입니까?

XML 설정에 annotation-config라는 컨텍스트를 넣을 수 있으며 주석을 넣지 않고도 빈 클래스를 자동 삽입 할 수 있습니까?

따라서 이러한 주석 유형을 사용하는 대신

public class Mailman
{
    private String name;

    @Autowired
    private Parcel Parcel;

    public Mailman(String name)
    {
        this.name = name;
    }

    @Autowired
    public void setParcel(Parcel Parcel)
    {
        this.Parcel = Parcel;
    }

    @Autowired
    public void directionsToParcel(Parcel Parcel)
    {
        this.Parcel = Parcel;
    }

}

나는 이것을 쓸 필요가있다.

<beans ... >
<bean id="mailMan" class="MailMan">
 <constructor-arg value="John Doe"/>
</bean>
<bean id="parcel" class="Parcel" />
<context:annotation-config />
</beans>

그리고 MailMan 클래스는 주석이 필요없이 훨씬 더 단순 해 보입니다.

public class Mailman
{
    private String name;

    private Parcel Parcel;

    public Mailman(String name)
    {
        this.name = name;
    }    
}

해결법

  1. ==============================

    1.기본적으로 Spring 컨텍스트는 @Autowired 주석에 아무런주의를 기울이지 않습니다. 컨텍스트를 처리하려면 컨텍스트에 AutowiredAnnotationBeanPostProcessor Bean이 등록되어 있어야합니다.

    기본적으로 Spring 컨텍스트는 @Autowired 주석에 아무런주의를 기울이지 않습니다. 컨텍스트를 처리하려면 컨텍스트에 AutowiredAnnotationBeanPostProcessor Bean이 등록되어 있어야합니다.

    는 이들 중 하나를 등록하고 (다른 것들과 함께) 등록해야합니다. (AutowiredAnnotationBeanPostProcessor를 직접 등록하지 않는 한, 이것은 완벽하게 유효합니다.)

    코드에 @Autowired가 없으면 를 사용하여 XML에 속성을 명시 적으로 주입 할 수 있습니다.이 속성은 혼란을 한 장소에서 다른 장소로 이동시킵니다.

    컨텍스트가 매우 단순하다면 여기에 설명 된대로 암시 적 자동 와이어 링을 사용할 수 있습니다. 본질적으로 이것은 속성 이름이나 타입에 의해 자동적으로 autowire하도록 Spring에 지시한다. 이것은 거의 구성을 필요로하지 않지만 매우 빠르게 제어 할 수 없게됩니다. 자동 성은 제어가 어렵다는 것을 의미하며 유연성이 거의 없습니다.

    @Autowired는 일반적으로 가장 좋은 옵션입니다.

  2. ==============================

    2.는 PersistenceAnnotationBeanPostProcessor, AutowiredAnnotationBeanPostProcessor, CommonAnnotationBeanPostProcessor 및 RequiredAnnotationBeanPostProcessor와 같이 Spring에서 제공하는 모든 표준 빈 포스트 프로세서를 자동 등록하기 때문에 스프링 컨텍스트 파일에 개별적으로 등록 할 필요가 없다. 속성 / 설정자에 @Autowired 주석을 제공해야합니다.

    는 PersistenceAnnotationBeanPostProcessor, AutowiredAnnotationBeanPostProcessor, CommonAnnotationBeanPostProcessor 및 RequiredAnnotationBeanPostProcessor와 같이 Spring에서 제공하는 모든 표준 빈 포스트 프로세서를 자동 등록하기 때문에 스프링 컨텍스트 파일에 개별적으로 등록 할 필요가 없다. 속성 / 설정자에 @Autowired 주석을 제공해야합니다.

  3. ==============================

    3.아니.

    아니.

    @Autowired Annotation은 와 함께 클래스에 필요합니다.

    xml config 부분은 주석을 사용할 때 필요하지 않습니다.

    또한 문서에서 는 정의 된 동일한 응용 프로그램 컨텍스트의 Bean에 대한 주석 만 찾습니다. 즉, DispatcherServlet에 대한 WebApplicationContext를 넣으면 @Autowired 귀하의 컨트롤러가 아니라 귀하의 서비스에 콩.

    어노테이션을 사용할 필요가 없다면 xml 설정을 지정해야합니다.

  4. from https://stackoverflow.com/questions/2985030/is-contextannotation-config-an-alternative-to-autowired by cc-by-sa and MIT license