spring bean 自我注入是否适用于新的 spring 版本?
Does spring bean self injection works in new spring versions?
@Service
public class UserService implements Service{
@Autowired
private Service self;
}
上面的代码在 Spring 新版本 (5.*) 中是否正常工作?
(我可以自己检查,但我想知道 100%,但我自己可能会以某种方式搞砸了)
我也知道解决方法:
@Service(value = "someService")
public class UserService implements Service{
@Resource(name = "someService")
private Service self;
}
或
@Autowired
private ApplicationContext applicationContext;
所以我不是一无所求,我需要知道 100%
我需要专业人士的建议,我不相信自己的实验,因为我在 Spring 方面没有太多经验(例如,那里有很多模糊的配置)。希望这能澄清我为什么要提问而不是实验。
好的,我找到了答案:
使用 Spring 4 可以自我自动装配
@Service
@Transactional
public class UserServiceImpl implements UserService{
@Autowired
private UserRepository repository;
@Autowired
private UserService userService;
@Override
public void update(int id){
repository.findOne(id).setName("ddd");
}
@Override
public void save(Users user) {
repository.save(user);
userService.update(1);
}
}
@Service
public class UserService implements Service{
@Autowired
private Service self;
}
上面的代码在 Spring 新版本 (5.*) 中是否正常工作? (我可以自己检查,但我想知道 100%,但我自己可能会以某种方式搞砸了) 我也知道解决方法:
@Service(value = "someService")
public class UserService implements Service{
@Resource(name = "someService")
private Service self;
}
或
@Autowired
private ApplicationContext applicationContext;
所以我不是一无所求,我需要知道 100% 我需要专业人士的建议,我不相信自己的实验,因为我在 Spring 方面没有太多经验(例如,那里有很多模糊的配置)。希望这能澄清我为什么要提问而不是实验。
好的,我找到了答案: 使用 Spring 4 可以自我自动装配
@Service
@Transactional
public class UserServiceImpl implements UserService{
@Autowired
private UserRepository repository;
@Autowired
private UserService userService;
@Override
public void update(int id){
repository.findOne(id).setName("ddd");
}
@Override
public void save(Users user) {
repository.save(user);
userService.update(1);
}
}