Springmvc一些问题

项目进行快2周了。

过程中遇到过很多问题,但是都解决了;在这梳理一下。列举一下。

1. springmvc框架会遇到加载静态资源的问题。

   解决1:这个网上很多解决方法。一般通用的

    <!-- 静态资源映射 -->
    <mvc:resources mapping="/images/**" location="/images/" />
    <mvc:resources mapping="/css/**" location="/css/" />
    <mvc:resources mapping="/js/**" location="/js/" />

        解决2:我觉得这样的拦截是xml里面配置拦截了所有的请求造成的。向服务器请求的时候,被拦截。

         所以我就只配置了拦截后台请求为.do的方式(因为我更改web.xml配置之后,删除了‘解决1’的配置文件;静态资源就可以请求到了)

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>

2. hibernate懒加载会遇到延迟加载不出来的问题。

   我的hibernate的情况是@ManyToOne(fetch = FetchType.LAZY)这种情况。只要改为@ManyToOne(fetch = FetchType.EAGER)这种情况就好了。

3. 拦截器配置会遇到全拦截的情况。

   拦截器全拦截很烦请参照问题一的解决方法2解决。我只拦截客户端对服务器的请求,共有的资源访问是必须的。

框架遇到以上问题。

实际开发遇到一些问题:

1. 在hibernate逆向工程的时候,有时候会遇到明明改了配置文件但是还是指向原数据库。

   我用的sqlserver数据库在逆向工程的时候给我生成的注解文件  

@Entity
@Table(name = "customer", schema = "dbo", catalog = "dispatch")

实体类里面指定了数据库所以把"catalog='数据库名'"删除就可以了。

2. 在注解注入的时候一定要注意注入对象是子类还是父类。

   要不然会报异常

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'purveyController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field:

因为在控制器里注入

	@Autowired
    	@Qualifier("PurveyService")
	public PurveyServiceImpl purveyService;

3. 在开发的时候有一个查询特别灵活,要级联2张表,然后根据用户ID、主表ID、子表外键主表ID查询子表属性。感觉封装到basedao里面的话太累。最后就封装了一个传入动态hql语句自动查询的方法。(不知道大牛是怎么做的,是封装了还是传入SQL)

SELECT DISTINCT A.DETAIL2_SEND_NUMBER FROM PROJECT_SENDLINKMX A INNER JOIN PROJECT_SENDDATA B ON A.BILLDETAIL_ID=B.BILLDETAIL_ID AND B.SUPPLIER_CODE='user3';这个查询可以用in查询,但是in的话对于数据大的情况下不合适,所以最后还是决定用inner join。

 

以上是我或者我们项目组的人经常遇到的问题,希望你们不要遇到这些问题。有时间我会根据这里面的问题,好好整理一下。暂时就先mark一下。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值