我认为我对 Spring bean 类的理解有些偏离。

我正在做我的项目,正在考虑这种情况。

说我有Foo

class Foo(){
   public void doSomething(Object a , Object b){ // input parameters does not matter actually.
      //do something
   }
}

如果我在另一个类中使用此类:
class Scheduler{
  ....
 @Autowired
 private Foo foo;

 someMethod(){
    foo.doSomeThind(a,b);
 }
  ....
}

在上述情况下,我可以将Foo设为静态,并直接使用doSomeThing,而不是 Autowiring Foo.doSomeThing(a,b)
我只是想知道创建一个bean有什么好处,还是使用这样的静态方法有什么缺点?

如果它们相同,那么什么时候应该去买spring bean,什么时候应该简单地使用静态方法?

最佳答案

小型实用程序函数可以使用静态方法。静态代码的局限性在于,如果不更改代码本身,就无法更改其行为。

另一方面,Spring给您带来灵活性。

  • IoC。您的类不知道其依赖项的确切实现,它们仅依赖于接口(interface)定义的API。所有连接都是在配置中指定的,生产/测试/其他可能会有所不同。
  • 元编程的力量。您可以仅通过标记方法(通过xml中的注解)来更改方法的行为。因此,您可以将方法包装在事务中,使其成为异步或计划的,添加自定义AOP拦截器等。
  • Spring可以检测您的POJO方法,使其成为远程Web服务/RPC的终结点。

  • http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/

    10-07 19:45
    查看更多