当被@Component注解的类中没有构造函数注解时,Spring会通过默认的无参构造函数来实例化类对象,并使用依赖注入的方式进行属性注入。
以下是一个示例代码来说明这一过程:
@Component
public class MyComponent {
private MyDependency myDependency;
public MyComponent() {
// 默认的无参构造函数
}
public void setMyDependency(MyDependency myDependency) {
this.myDependency = myDependency;
}
public void doSomething() {
myDependency.doSomething();
}
}
@Component
public class MyDependency {
public void doSomething() {
System.out.println("Doing something...");
}
}
在上面的代码中,MyComponent类被@Component注解标记为一个Spring组件,并且没有任何构造函数注解。Spring会使用默认的无参构造函数来实例化MyComponent对象。
然后,Spring会通过调用setMyDependency()方法将MyDependency对象注入到MyComponent类中。
最后,可以调用MyComponent类的doSomething()方法来使用注入的依赖关系。
总结起来,当被@Component注解的类没有构造函数注解时,Spring会使用默认的无参构造函数来实例化类对象,并通过属性的setter方法进行依赖注入。