springboot 가 져 오기 도구 클래스 bean 프로 세 스 상세 설명

이번 실천 경험의 원인 은 개발 에서 도구 류 에서 프로필 의 변 수 를 사용 하고 싶 기 때 문 입 니 다.보통@value 주 해 를 사용 합 니 다.이것 은 spring 에서 관리 하 는 bean 에서 만 총 가 져 올 수 있 습 니 다.이전 개발 자 들 이 왜 SpringUtil 류 에@Component 주 해 를 넣 었 는 지 의문 이 들 었 는데,오늘 또 이런 상황 이 발생 한 이 유 는 완전히 이해 했다.

@Component
public class SpringUtil implements EnvironmentAware {
  private static Environment env;
  public static String getProperty(String key){
    return env.getProperty(key);
  }
  @Override
  public void setEnvironment(Environment environment) {
    injectEnvironment(env); //   spring                ,            ,              
  }
  public static void injectEnvironment(Environment env){
    SpringUtil.env = env; //               
  }
}
이 원 리 는 매우 간단 하 다.바로 실례 적 인 방법 으로 정적 인 방법 을 호출 하기 때문에 대상 을 생 성 했다.단지 하나의 도구 류 대상 만 생산 했다.이것 은 매우 많은 것 이 아니 라 자바,매우 spring 이다.이에 따라@Service 주석 도 하나의 예 입 니 다.
스프링 을 배우 면 스프링 의 중요 한 기능 중 하나 가 대상 관리 라 는 것 을 우 리 는 모두 안다.그렇다면 중요 한 문 제 는 우리 가 원 하 는 Bean 을 어떻게 얻 느 냐 하 는 것 이다.spirng 에 정적 클래스 가 있 습 니까?이름 을 통 해 대상 을 직접 가 져 옵 니 다.
죄 송 하지만 이것 은 spring 의 정확 한 열 림 방식 이 아 닙 니 다.정적 클래스 를 사용 하 는 것 이 얼마나 직 설 적 이지 만 spring 은 이렇게 실현 되 지 않 았 습 니 다.일반적인 방법 도 마찬가지 입 니 다.spirng 을 통 해 applicationContext 대상 을 주입 하 는 것 입 니 다.이것 이 바로 bean 용기 입 니 다.그리고 우리 가 얻 고 싶 은 종 류 를 얻 을 수 있 습 니 다.겸손 하 게 생각 합 니 다.당신 도 new application Context 대상 을 만 들 수 없습니다.이것 은 운영 환경 에서 하나의 application Context 대상 만 있 는 것 일 수도 있 습 니 다.
단 례 는 간결 미 다.정적 클래스 를 사용 하지 않 고 단일 예 를 사용 하 는 이 유 는 두 가지 가 있다 고 생각 합 니 다.
1.단일 사례 의 생 성 및 소각 은 사용 하지 않 을 때 자원 을 절약 할 수 있 습 니 다.
2.우리 가 계승 하 는 클래스 는 대부분이 인 스 턴 스 방법 과 인 스 턴 스 변수(인 스 턴 스 방법 과 인 스 턴 스 변수 가 무엇 인지 에 대해 대부분 클래스 가 예화 되 어야 하고 여러 대상 이 있 을 수 있 습 니 다)입 니 다.그러면 계승 할 때 인 스 턴 스 방법 과 인 스 턴 스 변수 입 니 다.이것 은 대상 을 대상 으로 프로 그래 밍 스타일 이 단일 상황 에서 의 영향 이 라 고 할 수 있 습 니 다.단일 사례 의 단점 은 생 성 대상 의 씀 씀 이 일 수도 있 는데,지금 은 아무것도 아니다.
대상 은 일반적으로 종류 보다 풍만 하 다.응,이것 은 경험 이 야.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기