1. 의존성 주입 설정
root-context에 component-scan 추가
XML 설정
root-context.xml -> Namespaces탭 -> context체크 -> root-context.xml에 코드 추가
<context:component-scan base-package="com.toy.sample"/>
</context:component-scan>
Java 설정
RootCconfig.java에 코드 추가
@Configuration
@ComponentScan(basePackages= {"com.toy.sample"})
public class RootConfig {
2. 의존성 주입 방법
: 생성자 주입과 setter 주입 방법 등이 있다.
1) 생성자 주입
: 생성자를 정의 후 주입한다.
ex) @Component + 생성자 생성
@Component
@Data //Lombok의 setter, 생성자, toString 등을 자동으로 생성한다
public class Chef {
@Component
@ToString
@Getter
public class Hotel {
private Chef chef;
public Hotel(Chef chef) {
this.chef = chef;
}
}
2) 묵시적 생성자 주입 (spring 4.3 이후)
:
ex) @Component + @AllArgsConstructor
@Component
@Data //Lombok의 setter, 생성자, toString 등을 자동으로 생성한다
public class Chef {
@Component
@ToString
@Getter
@AllArgsConstructor //인스턴스 변수로 선언된 모든 것을 파라미터로 받는 생성자를 만든다.
public class Hotel {
private Chef chef;
}
ex) @Controller + @RequiredArgsConstructor
@Controller
public class MyWebSocketHandler extends TextWebSocketHandler {
@Configuration
@RequiredArgsConstructor
public class WebSocketConfig implements WebSocketConfigurer{
private final MyWebSocketHandler myWebSocketHandler;
3) setter주입
: @Setter set메소드 작성 후 @Autowired 등 어노테이션 추가해 생성자를 주입한다.
ex)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { RootConfig.class })
@Log4j
public class HotelTests {
@Setter(onMethod_ = { @Autowired })
private Hotel hotel;
@Test
public void testExist() {
assertNotNull(hotel);
log.info(hotel);
log.info("-------");
log.info(hotel.getChef());
}
}
4) @Configuration + @Bean
:
ex)
@Configuration
public class WebSocketConfig implements WebSocketConfigurer{
@Bean
public MyWebSocketHandler chatHandler() {
return new MyWebSocketHandler();
}
//@RequiredArgsConstructor : @NonNull, final이 붙은 인스턴스 변수에 대한 생성자를 만든다.
참고
코드로 배우는 스프링 웹 프로젝트
'SPRING' 카테고리의 다른 글
SPRING 웹소켓 기본설정 (Java Configuration) (0) | 2023.02.18 |
---|---|
SPRING mybatis <selectKey> (0) | 2023.02.13 |
SPRING 테스트 코드 작성 (0) | 2023.02.07 |
SPRING 설정 (JAVA Configuration) (0) | 2023.02.06 |
SPRING 설정 (XML) (0) | 2023.02.04 |