1.仅有参构造器注入,无set方法,使用了lombok.jar中的注解 import lombok.AllArgsConstructor; import java.util.Date; @AllArgsConstructor//自动生成全参构造方法,有且只有一个 public class Wife {//无set方法 private String name; private boolean beauty; private Date marryTime; @Override public String toString() {//如果没有重写该方法,返回值为对象所属类的完全限定名@对象的哈希码的16进制。 return "Wife{" + "name='" + name + '\'' + ", beauty=" + beauty + ", marryTime=" + marryTime + '}'; } }
2.无参构造器注入
import lombok.NoArgsConstructor; import java.util.Date; //仅有无参构造器注入,没有set方法 @NoArgsConstructor//注解自动生成一个且只有无参构造方法 //bean没有属性时使用无参构造器可以进行无参构造器注入。 public class WifeCopilot { private String name; private boolean beauty; private Date marryTime; @Override public String toString() { return "Wife{" + "name='" + name + '\'' + ", beauty=" + beauty + ", marryTime=" + marryTime + '}'; } }
3.bean对象代码
<!--2.妻子构造器注入案例--> <!--有参构造器注入--> <bean id="wife" name="vivian,薇薇安" class="com.zzt.spring.ioc.Wife"> <constructor-arg name="name" value="vivian"/> <constructor-arg name="beauty" value="true"/> <constructor-arg name="marryTime" ref="now"/> </bean> <!--无参构造器注入--> <bean id="wife2" name="lillian,莉莉安" class="com.zzt.spring.ioc.WifeCopilot"> </bean> <!--Date类创建date对象,会自动默认赋予当前时区时间。因此使用当前时间时。bean对象中date的值不需要使用value赋值--> <bean id="now" class="java.util.Date"></bean>
4.构造器注入结果: