当前位置:首页 > Java API 与类库手册 > 正文

Java优学网@Autowired入门解析:从基础到实战,轻松掌握依赖注入技巧

@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);

}

Java优学网@Autowired入门解析:从基础到实战,轻松掌握依赖注入技巧

@Component public class AlipayProcessor implements PaymentProcessor {

// 支付宝支付实现

}

@Component public class WechatPayProcessor implements PaymentProcessor {

// 微信支付实现

}

@Component public class BankTransferProcessor implements PaymentProcessor {

Java优学网@Autowired入门解析:从基础到实战,轻松掌握依赖注入技巧

// 银行转账实现

}

@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;
}

}

你可能想看:

相关文章:

文章已关闭评论!