Spring的错误集

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_37010686/article/details/80015528

博主简介

毕业于武汉工商,有着两年开发经验,从事全栈工作,从系统需求设计,开发,测试,部署一整套开发体系,熟悉常用的关系型数据库,MySQL、Oracle、SqlServer等 ,也了解部分NoSQL,包括Redis、MongoDB等。实习的时候从事Java开发,熟悉基本的前端框架。现在转型学python,力求做一些自己的小产品,目前把自己学的经验积累给大家。
如果愿意跟着我一起学习可以加入
QQ群 534893126
个人QQ 365926403
如遇个人技术问题可联系我哦

1.对于java bean

javaBean中需要一个Date类型的时候我们通常是先做一个日期工厂来提供类型转换,其本质类似于我们写了一个DateUtil,当我们需要日期转化的时候我们就把这个工厂拿过来用,这样就可以提供实时的日期转换,其实我们手写一个DateUtil也是可以的。具体解决方案见详情
spring报错找不到可使用的Bean,通常为这个Bean不存在,解决方案为核对applicationContext.xml文件的Bean的id和引用id。

2.对于注解式的事务不起作用

总结一下导致事务不回滚的两个主要原因,一是Service类内部方法调用,二是try-catch异常。
(1)若service调用内层的service方法带有@transactional,外部的service方法不带,事务将不起作用
(2)try-catth异常捕获,那么spring认为该方法执行的时候没有抛出runtimeException,那么事务也总是不回滚的。
(3)仅仅配置事务管理器。与此同时还需要把事务管理器注入spring。

<!--事务管理器-->
<bean id="transactionManager"
	class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
	<!-- 数据源 -->
	<property name="dataSource" ref="dataSource" />
</bean>
<!-- 声明式事务管理 配置事物的注解方式注入-->
<tx:annotation-driven transaction-manager="transactionManager"/> 

3.对于SpringMVC传值到后台的时候传值为数组的问题

(1)前端需要设置请求头为contentType:“application/json”,
(2)前端传参数的时候为一个字符串,所以data属性为 JSON.stringify(data),
(3)后台设置接受参数为一个对象数组;
小例子,转载自网友

数据准备:
1、实体类
class A
{
private int id;
private String name;
}
2、集合json字符串
[{"id":1,"name":"k1"},{"id":2,"name":"k2"}]
 
 
前后端:
1、Java后端
  @RequestMapping(value = "/insertBatch.do")
  @ResponseBody
    public Result insertBatch(@RequestBody A[] params) {     //这里需要用数组,不能用集合
 
 
2、前端ajax调用
var dataArr=[{"id":1,"name":"k1"},{"id":2,"name":"k2"}];
var params = JSON.stringify(dataArr);
    $.ajax({
            type: 'POST',
            url: "http://localhost:8080/insertBatch.do",
            data: params,
            success:  function (data, status) {
                alert("数据: \n" + data + "\n状态: " + status);
            },
            dataType : 'json',
            contentType : 'application/json'
        });
展开阅读全文

没有更多推荐了,返回首页