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

2018-06-18 00:50:24来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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(依赖注入)的主要目的,是让容器去产生一个对象的实例,然后在整个生命周期中使用他们

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:通过jenkins持续集成 github中的代码到服务器。

下一篇:前后端联调——发送与接收数组类型参数