zoukankan      html  css  js  c++  java
  • Spring注解之@Autowired:Setter 方法上使用@Autowired注解

           可以在 JavaBean中的 setter 方法中使用 @Autowired 注解。当 Spring遇到一个在 setter 方法中使用的 @Autowired 注解时,它会在方法中按照类型自动装配参数值。创建测试类User,并且添加属性student,

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Component;
    
    import java.io.Serializable;
    
    /**
     * @author Wiener
     */
    @Component
    public class User implements Serializable {
        private static final long serialVersionUID = 6089103683553156328L;
        private Long id;
        private Student student;
    
        public Student getStudent() {
            return student;
        }
    
        @Autowired
        public void setStudent(Student student) {
            this.student = student;
        }
    
        public void isStu() {
            student.studentStudy();
            System.out.println("------ 装配Bean成功 ---------");
        }
    }

           下面创建依赖的类文件 Student.java,切莫忘记在类文件上添加注解 @Component:

    import lombok.Getter;
    import lombok.Setter;
    import org.springframework.stereotype.Component;
    
    import java.io.Serializable;
    import java.util.Date;
    
    /**
     * @author Wiener
     */
    @Getter
    @Setter
    @Component
    public class Student implements Serializable {
    
        private static final long serialVersionUID = -5246589941647210011L;
    
        //姓名
        private String name;
      
        public Student() {
            System.out.println("A default student constructor." );
        }
        public void studentStudy() {
            System.out.println("A student is studying." );
        }
    }

           修改Spring Boot启动类,通过Spring容器拿到Bean实例user:

    import com.east7.bean.User;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.context.ApplicationContext;
    
    /**
     * @author Wiener
     */
    @SpringBootApplication
    public class East7Application {
    
        public static void main(String[] args) {
           ApplicationContext act = SpringApplication.run(East7Application.class, args);
           User user = (User) act.getBean("user");
           user.isStu();
        }
    
    }

    启动应用程序,控制台将会输出以下消息:

    A default student constructor.
    A student is studying.
    ------ 装配Bean成功 ---------

    说明student属性被装配成功。如果setStudent方法不加注解,程序运行时,会抛出如下异常:

    Exception in thread "main" java.lang.NullPointerException
        at com.east7.bean.User.isStu(User.java:28)
        at com.east7.East7Application.main(East7Application.java:25)
  • 相关阅读:
    access 连接数据库
    Debug 和 Release 的区别
    Centos
    打印画面
    读取文件夹以及消除
    常用的文件文件夹目录的操作函数
    db的操作
    从数据库取数据
    pdf文件的作成
    读取文件
  • 原文地址:https://www.cnblogs.com/east7/p/13283540.html
Copyright © 2011-2022 走看看