spring bean 의 좋 은 방법
3471 단어 php
@ 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...
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Laravel - 변환된 유효성 검사 규칙으로 API 요청 제공동적 콘텐츠를 위해 API를 통해 Laravel CMS에 연결하는 모바일 앱(또는 웹사이트) 구축을 고려하십시오. 이제 앱은 CMS에서 번역된 콘텐츠를 받을 것으로 예상되는 다국어 앱이 될 수 있습니다. 일반적으로 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.