@Configuration @ComponentScan("com.example") public class AppConfig { }
@Repository public class MySQLUserRepository implements UserRepository {
// MySQL实现
}
@Repository
public class PostgreSQLUserRepository implements UserRepository {
// PostgreSQL实现
}
@Service public class UserService {
@Autowired
private UserRepository userRepository; // 这里会报错!
}
public interface PaymentProcessor {
boolean process(PaymentRequest request);
}

@Component public class AlipayProcessor implements PaymentProcessor {
// 支付宝支付实现
}
@Component public class WechatPayProcessor implements PaymentProcessor {
// 微信支付实现
}
@Component public class BankTransferProcessor implements PaymentProcessor {

// 银行转账实现
}
@Service public class UserService {
@Autowired
private RoleService roleService;
}
@Service
public class RoleService {
@Autowired
private UserService userService;
}
@Service public class UserService {
private final UserRepository userRepository;
private final PasswordEncoder passwordEncoder;
private final EmailService emailService;
@Autowired
public UserService(UserRepository userRepository,
PasswordEncoder passwordEncoder,
EmailService emailService) {
this.userRepository = userRepository;
this.passwordEncoder = passwordEncoder;
this.emailService = emailService;
}
public User registerUser(UserRegistrationDto dto) {
String encodedPassword = passwordEncoder.encode(dto.getPassword());
User user = new User(dto.getUsername(), encodedPassword, dto.getEmail());
User savedUser = userRepository.save(user);
emailService.sendWelcomeEmail(savedUser.getEmail());
return savedUser;
}
}
你可能想看: