- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用静态方法使代码更加简洁。所以我想使用静态方法,甚至与其中的 @Service、@Repository 类一起使用。通过代码你可以更容易理解。非常短,而且有效!!
但我想知道在任何情况下都可以使用。我以前没有看到过这样的代码,所以我担心它是可以使用的有效代码。如果您对此有任何想法,可以给我建议吗?
@Repository
public class TruckRepository {
public Integer selectWheelCount() {
//which is searching truck database to get some data about trucks.
//Such as how many wheels does the truck have, something like that.
}
}
@Component
public class CarFactory {
private static TruckRepository truckRepository;
//@Autowired << can be omitted after spring 4.3 as I know
NewsSourceFactory(TruckRepository truckRepository) {
this.truckRepository = truckRepository;
}
public static Integer getWheelCount(String carType) {
swtich(carType) {
case TRUCK:
return truckRepository.selectWheelCount();
}
}
}
@Component
public class SomeCode {
public void something() {
Integer count = CarFactory.getWheelCount("TRUCK");
}
}
我对java中的“Duration.class”、“Stream.class”代码印象深刻。他们也使用静态方法,当然他们没有动态注入(inject)。如果考虑到代码的简洁性或清晰性,这难道不是静态方法的优点吗?真的无害吗?
最佳答案
您正在使用静态方法,该方法使用在构造函数中初始化的静态字段。在此代码中,甚至不清楚 Spring 何时会创建 CarFactory 的新实例(如果没有人引用它,也许根本不会)。如果没有创建 CarFactory
实例,您的静态方法也会被破坏,因为静态字段未初始化。
在您的情况下,我没有看到使用静态方法的任何好处,毕竟您始终可以将 CarFactory
实例注入(inject) SomeCode
中。
简单为:
@Autowired
private CarFactory cartFactory;
或者更好:
private CarFactory cartFactory;
public SomeCode(@Autowired CarFactory pCartFactory) {
cartFactory = pCartFactory;
}
关于java - @Service、@Repository 类对静态字段的依赖注入(inject)有利于静态方法的使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57371238/
所以我有两个分支,假设分支 A 和分支 B 我已将分支 A merge 到分支 B。 git checkout B git merge A 现在我想在命令行中解决有利于分支 A 的差异。我该怎么做?
所以我有两个分支,假设分支 A 和分支 B 我已将分支 A merge 到分支 B。 git checkout B git merge A 现在我想在命令行中解决有利于分支 A 的差异。我该怎么做?
我是一家相对较小的商店中唯一的开发人员,该公司确实制作了大量各种定制应用程序。钱不是这个讨论中的一个因素,所以除此之外,有什么理由支持和反对我使用团队系统。 我们目前严重依赖 VS2008 Pro、V
我是一名优秀的程序员,十分优秀!