spring bean 의 좋 은 방법

3471 단어 php
@ controller 컨트롤 러 (주입 서비스): 컨트롤 층 을 표시 하 는 데 사용 되 며 struts 의 action 층 에 해당 합 니 다.
@ service 서비스 (dao 주입): 서비스 층 을 표시 하 는 데 사용 되 며 주로 업무 의 논리 적 처 리 를 하 는 데 사 용 됩 니 다.
@ reposcory (dao 접근 실현): 데이터 액세스 층 을 표시 하 는 데 사용 되 며, 데이터 액세스 구성 요소, 즉 DAO 구성 요 소 를 표시 하 는 데 도 사용 된다 고 할 수 있 습 니 다.
@ component (일반 pojo 를 spring 용기 에 예화 하 는 것 은 설정 파일 에 해당 합 니 다): 여러 구성 요 소 를 말 합 니 다. 즉, 우리 클래스 가 여러 가지 분류 에 속 하지 않 을 때 (@ Controller, @ Services 등에 속 하지 않 을 때) 우 리 는 @ Component 를 사용 하여 이 종 류 를 표시 할 수 있 습 니 다.
@ component 주 해 는 일반적으로 데 이 터 를 조작 할 필요 가 없 는 도구 류 를 용기 에 넣 을 때 사용 합 니 다. 데이터 베 이 스 를 조작 할 때 dao 나 mapper 를 사용 할 때 도구 류 라 도 @ service 를 사용 하 는 것 을 권장 합 니 다.
우선 매 거 진 을 만 듭 니 다.
public enum PayEnum
{
ALIBABA_PAY("0", "alibaba", "   "),



WEIXIN_PAY("1", "weixin", "  ");



private String code;



private String display;



private String displayCN;



private PayEnum(String code, String display, String displayCN)

{

    this.code = code;

    this.display = display;

    this.displayCN = displayCN;

}



public static PayEnumfromCode(String code)

{

    PayEnum[] values = values();



    for (PayEnumtype : values)

    {

        if (type.code.equals(code))

        {

            return type;

        }

    }



    return null;

}



public static PayEnumbuildDisplay(String display)

{

    for (PayEnumtype : values())

    {

        if (type.display.equals(display))

        {

            return type;

        }

    }

    return null;

}



public static PayEnumbuildDisplayCN(String displayCN)

{

    for (PayEnumtype : values())

    {

        if (type.displayCN.equals(displayCN))

        {

            return type;

        }

    }

    return null;

}



public int intCode()

{

    return Integer.valueOf(this.code).intValue();

}



@Override

public String code()

{

    return code;

}



@Override

public String display()

{

    return display;

}



public String displayCN() {

    return displayCN;

}

}
그리고 새 인터페이스
public interface ThirdPayPushCall
{
public void push(Account account, int i, int code);



public PayEnum style();

}
그 다음 에 인 터 페 이 스 는 여기 서 무시 하고 구체 적 인 업무 가 많 고 복잡 하 다 는 것 을 실현 한다.
다음은 이 bean 들 을 캐 시 에 넣 어서 사용 하기 편 하 게 하 는 방법 입 니 다.
@Service
public class PayDispatcherServiceImpl implements BeanPostProcessor
{
private static Map calls = new HashMap();



public static ThirdPayPushCall getCall(PayEnum pay)

{

    return calls.get(pay);

}

@Override

public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException

{

    if (bean instanceof ThirdPayPushCall)

    {

        ThirdPayPushCall call = (ThirdPayPushCall) bean;

        calls.put(((ThirdPayPushCall) bean).style(), call);

    }

    

    return bean;

}



@Override

public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException

{

    return bean;

}



}
어댑터 와 유사 한 bean 을 만들어 인터페이스의 실현 류 인 bean 버튼 값 형식 을 용기 에 넣 고 사용 할 때 인터페이스 로 수신 하여 하위 클래스 에 해당 하 는 하위 클래스 를 호출 하 는 비 즈 니스 논 리 를 가 져 옵 니 다. - - - - - - -저작권 성명: 본 고 는 CSDN 블 로 거들 의 '어쨌든 이름 을 짓 자' 는 오리지널 글 로 CC 4.0 BY - SA 저작권 협의 에 따라 원문 출처 링크 와 본 성명 을 첨부 하 시기 바 랍 니 다.원본 링크:https://blog.csdn.net/qq_3092...

좋은 웹페이지 즐겨찾기