스프링 프레임 워크를 방금 배웠거나 배웠지 만 잊어 버린 사용자를 위해이 블로그를 다시 살펴보면
Maven 프로젝트 에서 다음 코드를 작성 하는 데 도움이 될 것입니다
. 스프링 프레임 워크를 사용하여 클래스 생성 및 테스트, Junit 사용시 수동으로 ApplicationContext 생성을 선택할 수 있습니다. 목적
private ApplicationContext applicationContext;
accountService = applicationContext.getBean("accountService",
AccountService.class);
스프링을 사용하는 간단한 사례 :
이를 통해 스프링 프레임 워크를 사용한 후 객체를 생성하고 싶을 때 new를 다시 사용할 필요가 없어서 스프링 프레임 워크에 직접 전달하여이를 수행하도록하여 커플 링을 줄일 수 있음을 알 수 있습니다.
@RunWith () 주석을 사용
하여 멤버 변수 applicationContext 를 제거 하여 spring의 junit 통합을 사용할 수도 있습니다.
Bean 어노테이션을 작성하십시오.
@Controller는 제어 계층의 클래스에
사용됩니다. @Service는 비즈니스 계층 작업
에 사용됩니다. @Repository는 지속성 계층 작업에 사용됩니다
. 3 계층 아키텍처 이외의 @Component 클래스
정확히 말하면이 네 가지 주석은 모든 클래스에서 무료입니다. 네, 분류 수준을 구분하기 위해이 네 가지 다른 어노테이션이 생성됩니다.
네 개의 어노테이션은 동일한 효과를 갖습니다. 모두 스프링이 리플렉션을 사용하여 인스턴스화 된 객체를 생성하고 IOC 컨테이너에 추가하도록합니다.
어노테이션의 소스 코드를 살펴본 결과 네 개의 어노테이션 모두에 값 속성이 있음을 발견했습니다.
값 속성 어노테이션은 다음과 같이 변환됩니다.
이 값은 논리적 컴포넌트 이름이 권장됨을 나타낼 수 있습니다. 컴포넌트가 자동으로 감지되면 Spring Bean으로 변환됩니다.
값에 값을 할당하지 않을 경우 Bean의 id 값은 현재 클래스 이름이고 첫 문자는 소문자로 변경됩니다.
@Bean 주석도 Bean을 생성하지만이 주석은 메소드 및 주석에만 배치 할 수 있습니다
.이 주석 사용 : 메소드의 반환 값을 나타냅니다. Bean 객체로 IOC 컨테이너에 추가
@Bean 주석 소스 코드는 위의 4 개의 주석과 다른 것을 보여줍니다.
DI (종속성 주입)
인스턴스 객체를 생성 할 때 클래스에 할당해야하는 속성 (또는 멤버 변수)이 하나 이상있는 경우이 시점에서 Spring에이를 수행하도록 요청할 수 있습니다.
Autowired와 Qualifier를 사용하면 메소드 매개 변수 또는 멤버 변수 중 하나의 종속성 주입이 가능하고 Qualifier는 특정 태그 빈을 주입 할 수 있음을 알 수 있습니다.
위의 경우에 사용 된 @ComponentScan 주석은 xml 파일의
역할과 동일 합니다. 봄에 패키지를 스캔하도록 알리는 것입니다.
동적 프록시
Proxy 클래스의 newProxyInstance () 메서드를 사용하여 객체의 메서드를 향상 및 변환 할 수있는 동적 프록시 객체를 생성합니다 ( 원래 객체의 코드를 변경하지 않음을 기준으로 함 )
. 사용 예 :
테스트 결과 :
이 동적 프록시를 도입 한 이유는 Spring에서 제공하는 AOP 관련
5 가지 유형의 알림
전면
및 후면
예외가
최종적으로
래핑 됩니다. 처음 4 개의 알림은 실제로 주변 알림에 의해 축소 될 수 있습니다.
이와 유사하게
예외 알림은 catch 블록에 있고 최종 알림은 finally 블록에 있습니다.
다음과 같은 알림 클래스가 있다고 가정합니다.
연산 결과
는 위의 그림에서 볼 수 있으며 구현 클래스 메소드의 코드를 변경하지 않고 메소드를 수정할 수 있습니다.