SpringBoot配置与测试使用

这里总结一下spring刚开始使用时遇到的一些问题,我想对于初学者应该有些帮忙。

一,配置嵌套的问题

我在项目中使用到了redis,但是没有使用spring-boot-data-redis的包,而是自己封装的Jedis客户端。我需要在配置中配置一下redis的连接池等相关信息:application.yml如下:



图1


这里明显有一个嵌套的关系配置,对应的Java properties类为:




第一个红框是必须有的注解,第二个红框是我遇到的问题的地方,最开始的时候,我在网上找的例子,我定义的内部类并没有public static的修饰。但是在运行的时候就会报错:



说找不到方法,因为以前做项目的时候,遇到过类似的问题,就立刻把public static加上了,这个错误也解决了,另一种方法是把RedisConfigPool这个类放到外面,单独定义一个类。

这个配置类加载没有问题之后,我们就可以在别的类中这样引用:




二,使用@Bean创建Bean

这个应该比较简单:



这个就是创建一个RedisClient的bean.不过这里有个知识点,就是bean引用另一个bean,上图是一种方法,还可以通过方法传过来,例如:




三,Spring Boot的测试

在做一个项目的时候,我首先想到的就是测试,如果写代码之后,不方便测试,对于代码的质量保证就只能靠每个人的思维能力了。而且以后重构某个功能也没有信心保证没有问题。

如果有良好的测试配合,那就方便多了。这一点spring boot也替我们想到了。

一,基本于整个项目的测试

这种方法很简单,类似于把整个项目启动成功之后,再执行项目中的某个方法。配置如下:



这就是我要测试的写的RedisService类的方法。注释掉的也不说,以后会解释。

这样在运行测试用命的时候,就像执行项目的main方法一样,main方法执行完之后,所有的bean都被加载到了,再执行测试用例。


二,基于某个类,单独测试

这种测试方法不用启动整个项目,只需要把测试某个类相关的类都指定进来就可以了。



像这种,我只是测试RedisService类,我只需要把这个类指定进来即可,包括它依赖的一些类

@ContextConfiguration这个注解是用来指定由@Bean创建的类所在的Java配置类,即可那些在测试中用到的由@Configuration标记的类


上面这种测试方法各有优点。第一种简单粗暴,把项目中所有的类都引进来,不用手动指定。但是如果项目比较大,可能启动慢。

第二种相对来说测试启动快,只因只需要引用指定的类即可,麻烦的是我们必须手动指定那些在测试中用到的类。




游戏技术网公众号,扫描加入讨论游戏技术
发布了81 篇原创文章 · 获赞 62 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/wgslucky/article/details/79597264