- Eclipse和IntelliJ IDEA
- Navicat
- MySQL
- Spring Boot 单元测试
- swagger 测试
Eclipse
1 .xml文件的显示问题
默认的editor打开xml文件时,是以一个overview的形式展现的,很不利于编辑:
注意看上图中红色框框部分,我们将其选择从“Overview”改为“pom.xml”,就可以很利于我们的编写了,具体表现为下图:
2 JUnit Test 的新建问题
想要创建单元测试,但是却怎么也找不到JUnit Test在哪里创建的(已导入JUnit),经过一番探索,发现新建路径为:右键new –> Other –> JAVA –> JUnit –> JUnit Test Case/JUnit Test Suite
具体操作如下gif图所示:
3 详细的配置及使用方法
关于eclipse中插件安装方法、tomcat及svn的配置、Eclipse常见配置,请参阅:传送门。
IDEA
1 安装方法
想了解的直接去这里看吧:传送门。
2 使用方法
一些很有用的小方法
- Intellij IDEA 生成Get/Set方法快捷键
- Intellij IDEA 添加jar包的三种方式
- 使用
alt + /
,完成代码行的提示。
Navicat
MySQL
安装MySQL的经验:建议大家使用zip的解压文件直接解压,不要选择安装版。
如果使用了安装版,在设置authentication(选择强弱密码方式)时,可能会出现显示框不显示next按钮的问题。
解决方法是 桌面 –> 右键 –> 个性化 –> 显示(左下方) –> 设置为100%,然后根据提示,选择注销,重新登录后即可解决,具体如下图所示:
在配置MySQL时,请大家一定牢记密码!!!
因为我忘记了密码,网上给你各种重置密码的方式,都没法用(针对MySQL 8)。
然后,我就重装了。
关于MySQL的安装,推荐看这篇详细图解MySQL(win7x64 5.7.16版本)下载、安装、配置与使用。
Spring Boot 单元测试
今天写了一下单元测试,碰到很多坑,当然,还有一些暂时还未解决,先把已经解决的坑填一下!
使用JUnit测试时,出现“Error creating bean with name”
问题具体描述:我使用的测试框架是JUnit4,注解为@RunWith(SpringJUnit4ClassRunner.class)。然后就出现无法注入依赖的情况,试了很多方法,都未能解决,最后采用的解决方法如下。
具体解决方法:首先,在pom.xml中添加依赖如下:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.7.5.201505241946</version>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
接下来,使用MockMvc框架编写单元测试。下面是我写的一个简单测试代码,供大家参考:
package com.abc.helloworld;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import com.abc.helloworld.Pu;
import com.abc.helloworld.impl.PrjImpl;
import io.swagger.annotations.ApiOperation;
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
public class ProductServiceTest {
@Autowired
private MockMvc mockMvc;
@Autowired
private PrjImpl prjImpl;
@Test
public void insertTest() throws Exception {
Pu pu = new Pu();
pu.setId(110101);
pu.setName("xxx");
int flag = prjImpl.insert(product);
System.out.println("returnNum:" + flag);
}
测试时,Spring Boot @SpringApplicationConfiguration 不能导入的问题
解决方法:较新版的Spring Boot取消了@SpringApplicationConfiguration这个注解,用@SpringBootTest就可以了,具体用法可以参考上面的代码。
check the manual that corresponds to your MySQL server version for the right syntax 的错误
解决方法: 注意数据库中以及映射文件Dao.xml中的字段一定不能是MySQL中的保留字。所以遇到问题时,查看一下具体字段的命名!
更详细的解释及保留字表,可以查看传送门。
@TransactionConfiguration 无法导入
一些优质的单元测试博客链接
尚未解决的:为controller写单元测试时,出现
For input string : "null"
错误。
swagger 测试
利用springboot + swagger进行联调时,出现了两个错误,花了一天时间,终于解决,现在分享给大家!
问题1:访问 http://localhost:8080/swagger-ui.html#/ 时,出现重定向错误,会自动跳转到http://localhost:8080/login#/。需要输入用户名和密码才能登陆,具体情况如下图所示:
解决方法: 解决方法有两个。麻烦一点的方法就是登陆,用户名:user(均小写);密码在日志中,具体位置如下图所示:
图中红色线标记处的部分,每次运行时都会生成,复制进去即可登陆!
简单一点的方法是,直接在
application.java
主程序前添加注解:@EnableAutoConfiguration(exclude={SecurityAutoConfiguration.class})
,跳过输入账号和密码。问题2: 进入 http://localhost:8080/swagger-ui.html#/ 后,未显示接口信息!
解决方法:同样需要两个步骤,首先检查自己的
com.xxx.config(名字可能不同)
包下的Swagger2Config(名字可能不同)
配置文件中,basePackage
是否配置正确,如下图中打马赛克的那里所示:
如果这个没有问题,那么就直接清空浏览器缓存 (具体方法请自行百度) !!
然后,就可以成功开始调试接口了!