小编Ae.*_*Ae.的帖子

反射+弹簧依赖注入

我试图理解我是否可以将反射与弹簧依赖注入相结合,如下所示:

public interface ClientCommand {

    public void execute(...);

    public static enum Command {
        SomeCommand(SomeCommand.class);

        private Class<? extends ClientCommand> clazz;

        private Command(Class<? extends ClientCommand> clazz) {
            this.clazz = clazz;
        }

        public Class<? extends ClientCommand> getClazz() {
            return clazz;
        }

        public static ClientCommand getClientCommand(String name) {
            Command command = Enum.valueOf(Command.class, name);
            return command.getClazz().newInstance();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这将基于getClientCommand中传递的名称创建命令类的实例.这是扩展ClientCommand的类的示例:

public class LoginCommand implements ClientCommand {
    @Autowired
    private UserRepository userRepository;

    public void setUserRepository(@Qualifier("userRepository")UserRepository userRepository) {
        this.userRepository = userRepository;
    }

    public void execute(...) {
        ...
    } …
Run Code Online (Sandbox Code Playgroud)

java reflection spring

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

reflection ×1

spring ×1