spring 처음부터 (2) - bean 짜 기

4962 단어 spring
집중 설명 bean 직 입
spring 에 서 는 주로 세 가지 짜 임 방식 을 사용 합 니 다. - xml 파일 설정 - xml 설정 에 대응 하 는 자바 류 의 설정 쓰기 - xml 설정 에서 자동 으로 스 캔, 주해 짜 임
이 세 가지 설정 은 보기에 약간 중복 되 어 있어 서 더 많은 선택 을 해 야 한다.그러나 좋 은 점 은 당신 이 더 많은 선택 을 하고 우 리 는 자신의 프로젝트 가 더 적합 하 다 면 혼합 해서 사용 할 수 있다 는 것 이다.권위 적 인 조언 은 가능 한 한 스 캔 주석 주입 을 우선 선택 한 다음 자바 류 방식 의 설정 주입 에 맞 추 는 것 입 니 다. xml 설정 보다 자바 류 가 안전 하기 때 문 입 니 다.xml 의 단점 은 모든 설정 이 xml 파일 에 있어 서 코드 에서 설정 을 직관 적 으로 볼 수 없고 상대 적 으로 안전 하지 않다 는 것 이다.장점 은 namespace 가 자바 클 라 스 보다 편리 하 다 는 것 이다.
1. 자동 주입
  • 먼저 스 캔 경 로 를 명확 하 게 설정 해 야 합 니 다.두 가지 방식:
  • 자바 류 설정 은 자바 설정 류 에 주 해 를 추가 합 니 다 @ Configuration - 이것 은 설정 류 @ ComponentScan - 스 캔 경로 입 니 다. 인 자 를 추가 하지 않 으 면 기본 값 은 같은 가방 입 니 다.추가 매개 변수: @ ComponentScan ("package 1") 은 패키지 @ ComponentScan (basePackages = "package 1") 을 지정 할 수 있 습 니 다. 매개 변수 이름 @ ComponentScan (basePackages = {"package 1", "package 2"}) 도 여러 개의 패키지 @ ComponentScan (basePackageClasses = {XX. class, YY. class}) 을 지정 할 수 있 습 니 다. 클래스 도 지정 할 수 있 습 니 다.
    특히 주의해 야 할 것 은, 이렇게 쓰 면, 이 종류 가 있 는 가방 들 은 이 몇 가지 종류 만 스 캔 하 는 것 이 아니 라, 스 캔 하 는 경로 가 지 정 될 것 이다
  • xml 설정
    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
    
     <context:component-scan base-package="xxxxx" />
     </beans>
  • @ Component 주 해 는 클래스 에 있 습 니 다. 이 클래스 가 spring 으로 주 해 된 구성 요 소 를 설명 합 니 다. spring 은 이 클래스 에 bean 을 만 들 고 관리 해 야 합 니 다.이 bean 이 필요 한 곳 에 주입 할 수 있 습 니 다.그 러 니까 나 비 안 이 야.나 는 다른 사람 에 게 주입 할 수 있다.Component 에 인자 가 없 으 면 기본적으로 클래스 이니셜 소문 자 를 beanId 로 사용 합 니 다.인자 @ Component ("my Name") 를 추가 하여 beanId 를 지정 할 수 있 습 니 다.

  • JSR - 330 중 @ Named ("myName") 로 대체 할 수도 있 습 니 다.극히 적다.
    (삽입 방송) 준 it 에서 spring 사용 하기
    spring 의 test 패키지 도입
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-test</artifactId>
                <version>4.2.6.RELEASE</version>
            </dependency>

    테스트 클래스 에 주석 사용: @ RunWith (SpringJUnit 4 ClassRunner. class)
    (@ RunWith 는 Junit 4 의 주해 입 니 다)
    @ ContextConfiguration (classes = xxxxConfig. class) 자바 클래스 설정 을 사용 합 니 다.
    주입 할 속성 에 주석 사용: @ Autowired
    @Autowired
    @ Autowired 는 구조 기, setter 방법, 클래스 속성 에 사용 할 수 있 습 니 다.spring 에 게 이 인 스 턴 스 에 해당 하 는 bean 주입 을 제공 합 니 다.실제로 @ Autowired 는 클래스 의 모든 방법 을 설명 할 수 있 습 니 다. spring 은 이 방법 에 대한 매개 변수 가 bean 에 대한 의존 요 구 를 만족 시 키 려 고 노력 합 니 다.만약 하나의 bean 만 이 요 구 를 만족시킨다 면, 매우 즐겁게 주입 할 것 이다.만약 bean 이 요 구 를 만족 시 키 지 않 았 다 면 이상 을 던 졌 을 것 이다.이상 을 피하 기 위해 @ Autowired (required = false) 를 사용 할 수 있 습 니 다.이렇게 하면 spring 은 잘못 보고 하지 않 지만 null 값 위험 을 남 겼 습 니 다. check null 을 기억 하 세 요.만족 하 는 bean 이 여러 개 있다 면 이상 을 던 질 수도 있 고, spring 은 어느 것 을 주입 해 야 할 지 모 릅 니 다.
    @ Autowired 는 spring 특유 의 주해 입 니 다.자바 에는 @ Inject 주해 기능 이 많 지 않 습 니 다.보면 알 아야 지.

    좋은 웹페이지 즐겨찾기