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)
  • 相关阅读:
    [转]CentOS安装crontab及使用方法胡益兵
    Cython: CExtensions for Python
    freetds在UBUNTU下的安装
    用python写hiveclient 改善 ITeye技术网站
    Linux下连接MS Sql server 使用ODBC/FreeTDS组合(详细)_徒步旅行者的空间_百度空间
    现代软件构建系统的使用 CMake简介
    The Ex CS Grad Student: Running HQL from Python without using the Hive Standalone Server
    muduo 与 boost asio 吞吐量对比
    cmake与autoconf+automake的对比
    通过枚举返回指定字符结果[有时,好的程序就是一种规范,一种对事物的理解和认识,一种层次]
  • 原文地址:https://www.cnblogs.com/east7/p/13283540.html
Copyright © 2011-2022 走看看