• Spring整合JUnit spring静态对象属性的注入


    package cn.itcast.d_junit4;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    import cn.itcast.c_all_annotation.SpringConfiguration;
    import cn.itcast.domain.User;
    
    //在测试代码执行前创建spring容器
    @RunWith(SpringJUnit4ClassRunner.class)
    //指定配置文件位置
    //读取xml配置 也可以用数组的locations={classpath:applicationContext.xml}
    @ContextConfiguration("classpath:applicationContext.xml")
    //读取类配置
    //@ContextConfiguration(classes=SpringConfiguration.class)
    public class Demo {
        @Autowired
        private User user;
        @Test
        public void fun1(){
            System.out.println(user);
        }
        
    }

    如果不用@RunWith(SpringJUnit4ClassRunner.class)进行整合,则@Test无法执行applicationContext容器中存储的对象




    package cn.itcast.d_junit4;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.test.context.ContextConfiguration;
    import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    
    import cn.itcast.domain.User;
    
    @RunWith(SpringJUnit4ClassRunner.class)
    @ContextConfiguration("classpath:applicationContext.xml")
    public class Demo {
        private static User user;
        public static User getUser() {
            return user;
        }
        @Autowired
        public void setUser(User user) {
            Demo.user = user;
        }
        @Test
        public void fun1(){
            System.out.println(user);
        }
        public static void main(String[] args) {
            System.out.println(Demo.user);
            
        }
    }

    上边演示的是静态对象属性的注入,不能在属性上直接注入,可以在非静态方法上注入

    Spring框架测试远离了main()方法,而是使用整合的SpringJunit,如果main()方法测试,则要通过applicationContext的getBean()

    因为DI(依赖注入)的主要目的,是让容器去产生一个对象的实例,然后在整个生命周期中使用他们

  • 相关阅读:
    C++实现网格水印之调试笔记(六)—— 提取完成
    C++实现网格水印之调试笔记(五)—— 提取出错
    C++实现网格水印之调试笔记(四)—— 完成嵌入
    Spark ---RDD
    Running Spark on YARN
    Spark官方2 ---------Spark 编程指南(1.5.0)
    Spark官方1 ---------Spark SQL和DataFrame指南(1.5.0)
    spark与hive的集成
    [mysql] ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES).
    HDFS概述(6)————用户手册
  • 原文地址:https://www.cnblogs.com/qingyundian/p/9079366.html
Copyright © 2020-2023  润新知