1. 启动SpringBoot的时候出现端口被占的问题如何解决?
程序报错:Failed to start component [Connector[HTTP/1.1-8080]] LifecycleException: Protocol handler start failed, 出现这种情况说明8080端口被占,使用netstat -aon|findstr "8080"命令查看占用8080对应的PID,接着使用taskkill -pid {id} -f终止该进程。
举例:
C:\Users\catsme>netstat -aon|findstr "8080"
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 29460
C:\Users\catsme>taskkill -pid 29460 -f
成功: 已终止 PID 为 29460 的进程。
2. 为Ubuntu分配磁盘资源时没有分配到默认盘,再次启动又提示重新安装
修改启动顺序即可:
3. Virtual Box中Ubuntu下载软件速度太慢的问题
配置Ubuntu的镜像即可加快速度:
使用命令cp /etc/apt/sources.list /etc/apt/sources.list.bak 备份软件的配置源文件,接着使用vi /etc/apt/sources.list对系统配置文件进行编辑,将阿里开源镜像站中的配置信息粘贴至其中,ctrl+c->:wq退出编辑模式。即可看到下载速度有明显改善:
4. 在Ubuntu中的vi编辑模式下,上下左右箭头变成ABCD的情况怎么解决?
下载完整版vim:
sudo apt-get remove vim-common
sudo apt-get install vim-gtk
5. docker容器名称发生冲突时如何解决
使用命令docker ls -a查看当前哪些容器正在运行,接着使用命令docker kill {ID}杀死进程,以及使用docker rm {id}清楚记录,以结束对应ID的容器进程。
6. 出现ERROR:Docker Got permission denied while trying to connect to the Docker daemon socket at unix:报错时,如何解决?
问题原因在于当前用户没有加入docker用户组中,使用命令sudo gpasswd -a ${USER} docker,接着重启一次用户sudo su->sudo catsme即可。
7. 如何持久化虚拟机中的MySQL数据库
注意,使用
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
命令起来的数据库不是持久的,重启MySQL之后数据库就没了。所以需要在连接串中加-v参数,在当前目录中mkdir database之后,使用命令
docker run --name mysql -p 3306:3306 -v `pwd`/database:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
起来的数据库,会将数据映射到本地,实现持久化,Windows系统同理。这一点可以对照ElasticSearch的启动命令记忆:
docker run -p 9200:9200 -p 9300:9300 --name elasticsearch -v `pwd`/elastic:/usr/share/elasticsearch/data -e "discovery.type=single-node" elasticsearch:7.4.2
discovery.type=single-node:单级运行模式
8. 出现Cannot load driver class: com.mysql.jdbc.Driver如何解决:
说明我们没有引入SpringBoot连接MySQL的依赖,引入之后刷新即可。
9. 连接数据库时出现Host XXX is not allow to connect to this MySQL service如何解决?
使用docker logs mysql命令查看日志,可以看到:
日志中显示文件夹已经损坏,考虑选择新的文件夹存放数据,所以直接删除原来的文件夹,然后新建文件夹重启数据库即可,这种做法很危险。最好的方法,暂时不会...
10. 数据库中存储的时间,与返回网页的之间不一致,如何解决?
如果是差几分钟,那么需要在application.properties中加入mybatis.configuration.mapUnderscoreToCamelCase=true,将数据库中的create_at时间映射给User类中的createAt。
如果相差好几个小时,那么就需要设置时区了。在数据库的连接串中加入时区设置,比如:spring.datasource.url=jdbc:mysql://localhost:3306/mysql?serverTimezone=Asia/Shanghai
11. 使用@Mock,@InjectMocks总是发生空指针异常,如何解决?
在测试类中添加:
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
12. 使用mvn flyway:migrate 时出现 Found non-empty schema(s) XXX without schema history table! Use baseline() or set baselineOnMigrate to true to initialize the schema history table.
但是在application.properties中配置了:spring.flyway.baseline-on-migrate=true 仍然不起作用时,需要在pom.xml中配置:
<configuration>
<url>jdbc:mysql://localhost:3306/mysql</url>
<user>root</user>
<password>password</password>
<baselineOnMigrate>true</baselineOnMigrate>
</configuration>
13. 运行mvn test发现测试Test run 0....,并且报 java.lang.ClassNotFoundException: org.junit.platform.engine.support.discovery.SelectorResolver如何解决:
把pom.xml文件中的junit-jupiter-engine版本降为
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.2.0</version>
<scope>test</scope>
</dependency>
14. 明明引入了junit-jupiter依赖,但是仍旧出现junit-jupiter' failed to discover tests错误
还是版本问题,参考链接:github.com/mockito/moc…
具体操作:
15. 明明在.gitignore文件中声明了需要被忽略提交的文件,为什么git status还是会显示需要被提交?
由于最开始的时候,没有将相关文件加入.gitignore文件中,并提交了。这会导致在.gitignore文件中添加该文件不生效,所以应该git rm -r --cached . -f先清除缓存,再次提交。
16. 运行mvn:flyway:migrate命令成功了,但是在客户端中仍然看不到初始化的表及数据?
原因在于:绑定的数据库docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7名称mysql是系统数据库,所以新建数据库会被拒绝。这时候将数据库名称修改即可,推荐使用sys,这样可以在Squirrel 客户端中方便的看到数据是否正常启动。命令如下:
docker run --name sys -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -d mysql:5.7
17. 数据库建表时,用来表示时间的变量是CREATED_AT,但是实体变量中用的是createdAt,如何让二者匹配呢?
在config.xml中添加:
<settings>
<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>
否则,从数据库中拿到的时间都是null。这个配置在MyBatis的官网中已经提到:
18. 修改host目录,提高git clone速度时,提示联系管理员?
在Windows中输入cmd,选择cmd命令行,右击以管理员身份运行,cd C:\Windows\System32\Drivers\etc进入hosts根目录,使用notepad hosts命令,用记事本打开hosts文件,在末尾插入:
151.101.72.249 github.http://global.ssl.fastly.net
192.30.253.112 github.com
提高gitclone速度。
19.在cmd上使用curl命令出现乱码
进入cmd.exe之后,执行chcp 65001命令,在命令行标题栏上点击右键,选择"属性"->"字体",将字体修改为True Type字体"Lucida Console"。
20.在git bash中使用ipconfig命令出现中文乱码的情况,如何解决:
21. springboot升级到2.2.1.RELEASE 使用Freemarker模板页面无法显示?
还是版本问题,把SpringBoot降级为2.1.6.RELEASE。或者将模板文件的文件扩展名改为ftlh。
22. 使用IDEA打不开插件市场如何解决?
关闭代理即可。
23. 使用U盘拷贝文件时出现,对于目标系统xxx文件过大,如何解决?
需要对U盘格式化并修改格式:
24.使用mvn compile命令出现Maven error :Perhaps you are running on a JRE rather than a JDK?,如何解决?
问题出在没有再环境变量中添加maven,需要在系统变量中添加
25.启动SpringBoot后,localhost:${port}提示输入用户名密码,如何解决?
如图:
解决方法1:在application.properties增加:
spring.security.user.name=user1
spring.security.user.password=password1
自己设置用户名密码。
解决方法2:去掉pom.xml中的鉴权相关的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
26.IDEA控制台输出中文为乱码?
查看当前项目下的.idea/libraries/encondings.xml文件中的内容:
<file url="file://$PROJECT_DIR$/src/main/java" charset="GBK" />
<file url="PROJECT" charset="GBK" />
将所有的GBK改为UTF-8。另外,在idea的安装目录下找到bin\idea.exe.vmoptions文件,修改-Dfile.encoding=UTF-8,之后rebuild项目即可生效。
27.IDEA如何设置换行以及注释不顶格?
对于换行,可设置:Setting->Editor->General
对于注释,可设置:Setting->Editor->Code Style->Java:
28.使用mvn clean package将项目打包成jar报后,运行该jar包报“没有主属性清单”的错误?
使用mvn clean package命令将项目打包后,在target目录下可以看到项目对应的jar包:
使用java -jar ${jar包所对应的路径} 执行后,发现报错:
在修改SpringBoot构建的插件后,解决:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.3.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
29.启动SpringBoot时,系统报错“Property 'configuration' and 'configLocation' can not specified with together”:
经过排查后发现是由于在SpringBoot的配置文件中,对MyBatis的配置既使用了xml文件配置,又使用了在properties文件中配置的方式:
将开启驼峰映射的配置放到mybatis-config.xml文件中即可。
30.在虚拟机中通过docker启动了mysql数据库,但是主机中一直连接不上?
需要使用dhclient {显卡名称}命令为显卡分配ip地址后,再连接数据库。