Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从控制器中删除autowire,并将其替换为正常初始化_Java_Annotations_Javabeans - Fatal编程技术网

Java 从控制器中删除autowire,并将其替换为正常初始化

Java 从控制器中删除autowire,并将其替换为正常初始化,java,annotations,javabeans,Java,Annotations,Javabeans,我当前的代码包含@autowired,但我想删除它,然后用代码初始化它。如果你觉得很难理解,请投票否决我的问题,但请至少发表评论,这样我就可以重新编辑,因为我对这个注释内容还不熟悉,而且仍然会被它弄湿手 下面显示了我的代码,根据我对autowired的理解,它从类“Test”获取值,并将值连接到测试。如果我从代码中删除这个@autowired呢?我如何使它仍然可以执行?我的意思是,如果我删除@autowired,我怎么还能在同一行中初始化值,而不是使用wiring注释呢我想尝试这样做的原因是为了

我当前的代码包含@autowired,但我想删除它,然后用代码初始化它。如果你觉得很难理解,请投票否决我的问题,但请至少发表评论,这样我就可以重新编辑,因为我对这个注释内容还不熟悉,而且仍然会被它弄湿手

下面显示了我的代码,根据我对autowired的理解,它从类“Test”获取值,并将值连接到测试。如果我从代码中删除这个@autowired呢?我如何使它仍然可以执行?我的意思是,如果我删除@autowired,我怎么还能在同一行中初始化值,而不是使用wiring注释呢我想尝试这样做的原因是为了了解我的理解,同时看到更多不同的例子来提高我的理解力

 @Autowired
  @Qualifier("testing")
  Test testing;

我没有预期的结果,因为我只想理解注释,看看我的理解是否正确。

有三种方法可以将自动连线依赖项(使用spring)注入bean:

  • 自动连接字段本身

    @Autowired
    private Test test;
    
    @Autowired
    private SomethingService somethingService;
    
  • 自动布线设定器

    private Test test;
    private SomethingService somethingService;
    
    @Autowired
    public void setTest(Test test) {
        this.test = test;
    }
    
    @Autowired
    public void setSomethingService(SomethingService somethingService) {
        this.somethingService = somethingService;
    }
    
  • 自动连接构造函数(不需要注释):


  • 使用第三种方法的一个好处是,当您构造类的实例进行测试时,您可以为依赖项传递任何您想要的实现。

    有三种方法可以将自动连接的依赖项(使用spring)注入bean:

  • 自动连接字段本身

    @Autowired
    private Test test;
    
    @Autowired
    private SomethingService somethingService;
    
  • 自动布线设定器

    private Test test;
    private SomethingService somethingService;
    
    @Autowired
    public void setTest(Test test) {
        this.test = test;
    }
    
    @Autowired
    public void setSomethingService(SomethingService somethingService) {
        this.somethingService = somethingService;
    }
    
  • 自动连接构造函数(不需要注释):


  • 使用第三种方法的一个好处是,当您构造类的实例进行测试时,您可以传递依赖项所需的任何实现。

    您使用Spring吗?是的,我正在使用它。您使用Spring吗?是的,我正在使用它。非常感谢您,先生。现在这消除了我的困惑。我已经阅读了许多其他网站的教程和他们的解释,当涉及到许多不同类型的注射时,我有点不知所措。现在有了这个,我想我明白它是如何工作的了。再次感谢。我想确认一下,我是否有3个@injection属性。然后我删除所有这三个@injection。我应该对每个属性使用第三种方法,对吗?因此,我将对这3个属性分别进行3次初始化?编辑以显示如何处理多个依赖项。非常感谢,先生。现在这消除了我的困惑。我已经阅读了许多其他网站的教程和他们的解释,当涉及到许多不同类型的注射时,我有点不知所措。现在有了这个,我想我明白它是如何工作的了。再次感谢。我想确认一下,我是否有3个@injection属性。然后我删除所有这三个@injection。我应该对每个属性使用第三种方法,对吗?因此,我将对这3个属性分别进行3次初始化?编辑以显示如何处理多个依赖项。