Mybatis连接mysql,读写数据时会出现closing inbound before receiving peer’s close_notify警告以及关于@responsebody注解
读写数据库警告及其解决方法
关于@responsebody的作用
IDEA警告代码
STACKTRACE:
javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:129)
往下看可以看到是ssl的警告。一种解决方法可以在spring的配置文件中修改配置数据源的部分连接时选择不用ssl,修改如下,url后面加上useSSL=false
<!--配置数据源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/studentmc?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT&useSSL=false"/>
<property name="username" value="root"/>
<property name="password" value="heihei"/>
</bean>
另一种方法是提高警告级别,因为不影响正常操作,不过治标不治本,欢迎各位提供根源上的解决方案。
关于注解@responsebody
因项目需求在controller方法中编写了一个查询数据库的方法,前端通过ajax以及@RequestMapping
调用方法,但是前端一直无法显示返回的查询数据,测试的时候在控制台也能看到在controller层返回的数据是正常的,最后发现该方法缺少了注解@responsebody
,缺少该注解的方法返回值会sprngMVC解析为跳转路径,从而导致返回的json数据无法被识别。加上后会将方法的返回结果直接写入 HTTP response body 中,传递给前端显示