spring单元测试中怎么在@BeforeClass中使用@Autowired注入的对象呢?

    @Autowired
    DataSource dataSource;
    
    @BeforeClass
    public static void setUp(){
        // 需要在此处对dataSource进行一些操作,在整个类中只需处理一次,但获取到的是null
    }
    
    @Before
    public void init(){
        // 如果在这里对datasource进行处理的,每个单元方法都会被执行到一次,与需求不符。
    }

我需要的是在整个单元类中只对datasource进行一次初始化处理,但放在@BeforeClass或@Before都不合适,各位有没有好的解决方案?

阅读 5.5k
2 个回答

可以尝试使用单例模式,创建一个类DataSource,在类初始化时构造一个dataSource对象,然后在你需要注入DataSource的地方调用DataSource对象的方法返回单例对象dataSource。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题