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)
  • 相关阅读:
    hdu6199 gems gems gems dp+博弈
    codeforces 429 On the Bench dp+排列组合 限制相邻元素,求合法序列数。
    hdu6153 扩展kmp求一个字符串的后缀在另一个字符串出现的次数。
    hdu6149 Valley Numer II 分组背包+状态压缩
    hdu6125 Free from square 分组背包+状态压缩
    hdu1712 ACboy needs your help 分组背包
    hdu6121 Build a tree 模拟
    hdu6134 Battlestation Operational 莫比乌斯第一种形式
    hdu6143 Killer Names 容斥+排列组合
    将Long类型转为字母数字组合的jar包---Hashids
  • 原文地址:https://www.cnblogs.com/east7/p/13283540.html
Copyright © 2011-2022 走看看