27일차
@Configuration
public class PasswordConfig {
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
}
Spring server가 뜰때 Spring IoC Container에 @Bean 메서드가 Bean으로 저장
@Autowired
PasswordEncoder passwordEncoder;
public interface Food {
void eat();
}
@Component
// @Primary
public class Chicken implements Food {
@Override
public void eat() {
System.out.println("치킨을 먹습니다.");
}
}
@Component
// @Qualifier("pizza")
public class Pizza implements Food {
@Override
public void eat() {
System.out.println("피자를 먹습니다.");
}
}
@Autowired
Food food;

@Autowired
Food chicken;
@Autowired
Food pizza;
@Component
@Primary
public class Chicken implements Food {
@Override
public void eat() {
System.out.println("치킨을 먹습니다.");
}
}
public class BeanTest {
@Autowired
Food food;
}
디폴트 Bean으로 사용하고싶은 class에 @Primary쓰기
@Component
@Qualifier("pizza")
public class Pizza implements Food {
@Override
public void eat() {
System.out.println("피자를 먹습니다.");
}
}
public class BeanTest {
@Autowired
@Qualifier("pizza")
Food food;
}
- @Primary 보다 @Qualifier가 더 우선순위다
- @Qualifier
("pizza")("")로 지정한 값은 사용하려할때 반드시 지정한 값과 같은 값을 넣어야함.