随笔都是学习笔记
随笔仅供参考,为避免笔记中可能出现的错误误导他人,请勿转载。

创建类:

package entity;

import java.util.Date;

public class WifeFactory {
    public Wife createChild(){
        Child child = new Child();
        child.setName("儿子");
        return child;
    }
    public static Date getDate(){
        return new Date();
    }
}

Person类:

package entity;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;

public class Person implements InitializingBean, DisposableBean {
    private Integer id;
    private String name;
    private String gender;
    private Date birth;
    private List<String> ls;
    private Map<Integer,String> course;
    private Wife wife;

    public Person(Wife wife2) {
        this.wife = wife2;
    }

    public Person() {
    }

    public Person(Integer id, String name, String gender, Date birth, List<String> ls, Map<Integer, String> course, Wife wife) {
        this.id = id;
        this.name = name;
        this.gender = gender;
        this.birth = birth;
        this.ls = ls;
        this.course = course;
        this.wife = wife;
    }

    @Override
    public String toString() {
        return "Person{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", birth=" + birth +
                ", ls=" + ls +
                ", course=" + course +
                ", wife=" + wife +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return Objects.equals(id, person.id) && Objects.equals(name, person.name) && Objects.equals(gender, person.gender) && Objects.equals(birth, person.birth) && Objects.equals(ls, person.ls) && Objects.equals(course, person.course) && Objects.equals(wife, person.wife);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, gender, birth, ls, course, wife);
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public List<String> getLs() {
        return ls;
    }

    public void setLs(List<String> ls) {
        this.ls = ls;
    }

    public Map<Integer, String> getCourse() {
        return course;
    }

    public void setCourse(Map<Integer, String> course) {
        this.course = course;
    }

    public Wife getWife() {
        return wife;
    }

    public void setWife(Wife wife) {
        this.wife = wife;
    }
}

Wife类:

package entity;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.Objects;

public class Wife {
    private Integer id;
    private String name;
    private String gender;
    private Date birth;
    private List<String> ls;
    private Map<Integer,String> course;

    /**
     * 静态工厂方法
     * @return
     */
    public static Wife createChild(){
        Child child = new Child();
        child.setName("儿子");
        return child;
    }

    public Wife() {
        System.out.println("Wife加载");
    }

    @Override
    public String toString() {
        return "Wife{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", gender='" + gender + '\'' +
                ", birth=" + birth +
                ", ls=" + ls +
                ", course=" + course +
                '}';
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Wife wife = (Wife) o;
        return Objects.equals(id, wife.id) && Objects.equals(name, wife.name) && Objects.equals(gender, wife.gender) && Objects.equals(birth, wife.birth) && Objects.equals(ls, wife.ls) && Objects.equals(course, wife.course);
    }

    @Override
    public int hashCode() {
        return Objects.hash(id, name, gender, birth, ls, course);
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public Date getBirth() {
        return birth;
    }

    public void setBirth(Date birth) {
        this.birth = birth;
    }

    public List<String> getLs() {
        return ls;
    }

    public void setLs(List<String> ls) {
        this.ls = ls;
    }

    public Map<Integer, String> getCourse() {
        return course;
    }

    public void setCourse(Map<Integer, String> course) {
        this.course = course;
    }
}

xml中添加配置:

<bean class="entity.Person" id="person">
        <!--运算表达式-->
        <property name="id" value="#{1+2}"></property>
        <!--引用其它的Bean-->
        <property name="wife" value="#{wife}"></property>
        <!--将引用的Bean的属性赋值到本Bean中-->
        <property name="name" value="#{wife.name}"></property>
        <!--调用引用Bean的方法-->
        <property name="gender" value="#{wife.getName()}"></property>
        <!--调用静态方法-->
        <property name="birth" value="#{T(entity.WifeFactory).getDate()}"></property>
    </bean>
    <bean class="entity.Wife" id="wife">
        <property name="name" value="长老王五"></property>
    </bean>

测试方法:

    /**
     * SpEL表达式
     */
    @Test
    public void fun8(){
        Person person = ioc.getBean("person", Person.class);
        System.out.println(person);
    }

运行结果:

Person{id=3, name='长老王五', gender='长老王五', birth=Sat May 28 20:23:51 CST 2022, ls=null, course=null, wife=Wife{id=null, name='长老王五', gender='null', birth=null, ls=null, course=null}}是

所有的结果都与配置中赋值的一样。

 

posted on 2022-05-28 20:28  时间完全不够用啊  阅读(376)  评论(0编辑  收藏  举报