有没有更好的打针方法?
@Service
public class CountryServiceImpl implements CountryService {
private final UserSessionService userSessionService;
public CountryServiceImpl(final UserSessionService userSessionService) {
this.userSessionService = userSessionService; // SpotBugs warning
}
}
SpotBugs在标记的行上给了我一个警告:
此代码将对外部可变对象的引用存储到该对象的内部表示形式中。如果示例被不受信任的代码访问,并且对可变对象的未经检查的更改会危及安全性或其他重要属性,则需要做一些不同的操作。在许多情况下,存储对象的副本是更好的方法。@Autowired
应该是最后一个选项,因为它消除了在集成测试期间注入模拟Bean的能力。
1条答案
按热度按时间kcwpcxri1#
正如SpotBugs建议的那样,您只需创建
userSessionService
参数的副本(作为新对象),然后将该参数直接赋值给它: