zoukankan      html  css  js  c++  java
  • 自己搭建项目中存在的一些问题

    1、多种分页方式
    Oracle
    Mysql
    数组下标
    pagehelper
    2、
    Spring Web MVC 处理Http请求的大致过程:
    一旦Http请求到来,DispatcherSevlet将负责将请求分发。DispatcherServlet可以认为是Spring提供的前端控制器,
    所有的请求都有经过它来统一分发。
    在DispatcherServlet将请求分发给Spring Controller之前,需要借助于Spring提供的HandlerMapping定位到具体的Controller。
    HandlerMapping是这样一种对象,它能够完成客户请求到Controller之间的映射。
    在Struts中,这种映射是通过struts-config.xml文件完成的。其中,Spring为Controller接口提供了若干实现,
    例如Spring默认使用的BeanNameUrlHandlerMapping。还有,SimpleUrlHandlerMapping,CommonsPathMapHandlerMapping。
    Spring Controller将处理来自DispatcherServlet的请求。Spring的Controller类似于struts的Action,
    能够接受HttpServletRequest和HttpServletResponse。Spring为Controller接口提供了若干实现类,
    位于org.springframework.web.servlet.mvc包中。由于Controller需要为并发用户处理上述请求,因此实现Controller接口时,
    必须保证线程安全并且可重用。Controller将处理客户请求,这和Struts Action 扮演的角色是一致的。
    一旦Controller处理完客户请求,则返回ModelAndView对象给DispatcherServlet前端控制器。
    ModelAndView中包含了模型(Model)和视图(View)。从宏观角度考虑,DispatcherServlet是整个Web应用的控制器;
    从微观角度考虑,Controller是单个Http请求处理过程中的控制器,而ModelAndView是Http请求过程中返回的模型和视图。
    前端控制器返回的视图可以是视图的逻辑名,或者实现了View接口的对象。View对象能够渲染客户响应结果。
    其中,ModelAndView中的模型能够供渲染View时使用。借助于Map对象能够存储模型。
    如果ModelAndView返回的视图只是逻辑名,则需要借助Spring提供的视图解析器(ViewResoler)在Web应用中查找View对象,
    从而将响应结果渲染给客户。DispatcherServlet将View对象渲染出的结果返回个客户。
    3、
     @Override
        public PageBean<User> getUserByNoAndEmail(String no, String email) {
            Map<String, Object> map = new HashMap<>();
            map.put("no", no);
            map.put("email", email);
            
            PageHelper.startPage(PaginationContext.getPageNum(), PaginationContext.getPageSize());
            List<User> list = this.userMapper.getUserByNoAndEmail(map);
            return new PageBean<User>(list);
        }
    4、每周任务总结
    周一上午,将pagehelper了解清楚,并开始配置参数,写JUnit测试类;
    周一下午,两种方式配置pagehelper,第一种是在controller层进行参数输入,pageNum、pageSize,通过默认参数来实现;
    第二种可以自定义pageInfo类:pageBean,通过Filter拦截器,PageContext上下文参数设置页数和显示记录,在ServiceImpl中实现,在Controller中返回。
    周二上午,添加事务管理,JUnit测试;
    周二下午,查看缓存数据库redis相关资料,实现部分;
    周三,上午,添加缓存数据库;
    周三下午,对缓存数据库进行测试;
    周四上午,shrio权限资料查询;
    周四下午,对shrio进行操作,测试;
    周五,进行本周功能总结,整合,以及下周需要进行操作的内容;
    5、
    (1)web project中异步操作作为一个单独模块如何设置依赖
    maven中模块化操作如何设置;
    (2)异步操作设计那些内容?
    (3)上传下载功能
    (4)controller层设置、beanname、mv.setViewName();
    (5)responsebody
    (6)批量添加前端设计
    1)Oracle中mybatis写法
    <insert id="addRoleModule" parameterType="java.util.List">
        INSERT INTO T_P_ROLE_MODULE (ROLE_ID, MODULE_ID)
        <foreach collection="list" item="item" index="index" separator=" UNION ALL ">
        SELECT #{item.roleId}, #{item.moduleId} FROM DUAL
        </foreach>
    </insert>
    2)mysql中mybatis的写法
        <insert id="addTrainRecordBatch" useGeneratedKeys="true" parameterType="java.util.List">  
            <selectKey resultType="long" keyProperty="id" order="AFTER">  
                SELECT  
                LAST_INSERT_ID()  
            </selectKey>  
            insert into t_train_record (add_time,emp_id,activity_id,flag)   
            values  
            <foreach collection="list" item="item" index="index" separator="," >  
                (#{item.addTime},#{item.empId},#{item.activityId},#{item.flag})  
            </foreach>  
        </insert>  
    6、事务JUnit测试可用

    http://blog.csdn.net/xiaoerduo123x/article/details/51387203
    账户余额事务测试
    http://www.mamicode.com/info-detail-1474508.html
    7、日志配置文件不用导入?

    9、
    就是我在定义mapper.xml中的插入方法时一般都会默认用<![CDATA[ ]]>标签把sql语句括起来,如下所示:
        <![CDATA[
            select * from t_train_record t where t.activity_id=#{activityId}
        ]]>  
    这样做的目的主要是因为在 XML 元素中,"<" 和 "&" 是非法的。"<" 会产生错误,因为解析器会把该字符解释为新元素的开始。
    "&" 也会产生错误,因为解析器会把该字符解释为字符实体的开始。而sql语句或者脚本语句中可能会存在 "<" 或 "&" 字符。
    为了避免错误,可以将sql语句定义为 CDATA。CDATA 部分中的所有内容都会被解析器忽略。
        当时我在addTrainRecordBatch方法中也用了这种用法:
        <![CDATA[
            insert into t_train_record (add_time,emp_id,activity_id,flag)  
            values
            <foreach collection="list" item="item" index="index" separator="," >
                (#{item.addTime},#{item.empId},#{item.activityId},#{item.flag})
            </foreach>
        ]]>  
    结果程序在执行时老是报错: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException,查看错误信息就是传入的参数都是null。
    纠结了很久,后面才发现原来是<![CDATA[ ]]>把xml中的<foreach>标签括起来后把标签直接当成字符串处理了。后面把外面的<![CDATA[ ]]>去掉后就能正常执行了。
    10、
    generator自动生成、Maven项目下SSM框架搭建;
    pagehelper、transaction;
    批量操作、多个参数直接设置传map集合《待定》
    shrio权限管理
    缓存数据库设计(有问题待查看)
    优盘前台界面调用、税优健康险平台js调用
    8、自动发送邮件
    发送短信
    投票事务demo
    11、最代码
    CSDN、博客园
    线程安全问题
    12、配置事务时出错
    Multiple annotations found at this line:
        - cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'tx:annotation-driven'.
        - schema_reference.4: Failed to read schema document 'http://www.springframework.org/schema/tx/spring-tx-3.0.xsd', because 1)
    could not find the document; 2) the document could not be
         read; 3) the root element of the document is not <xsd:schema>.
    这个问题网上有很好的解决方法,http://blog.csdn.net/bluishglc/article/details/7596118
    但其实更简单的方法就是,将注解的那些xmlns文件以及xsi文件下关于注解的部分剪贴出去,然后重新粘贴进来,重新编译验证就可以了。
    而这类问题出错的主要原因是:validate时,突然没有网络或者spring连接不上去。
      <!-- cache配置 -->
          <bean id="methodCacheInterceptor" class="com.cn.hnust.Interceptor.MethodCacheInterceptor" >
         <property name="redisUtil" ref="redisUtil" />
          </bean >
      <bean id="redisUtil" class="com.cn.hnust.Utils.RedisUtil" >
         <property name="redisTemplate" ref="redisTemplate" />
      </bean >   
     
      <!-- 需要加入缓存的类或方法 -->
    <bean id="methodCachePointCut" class="org.springframework.aop.support.RegexpMethodPointcutAdvisor" >
       <property name="advice" >
         <ref local="methodCacheInterceptor" />
       </property>
       <property name="patterns" >
         <list>
          <!-- 确定正则表达式列表 -->
           <value>com.mucfc.msm.service.impl...*ServiceImpl.*</value >
         </list>
       </property>
    </bean >

    message Request processing failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException:
    Cannot get Jedis connection; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool
    D:application edis edisbin_x64

    implements  Serializable
    对象序列化问题
    http://blog.csdn.net/tiantiandjava/article/details/46712313
    测试类中向mysql插入数据乱码
    最基础的测试缓存数据库redis测试成功,通用性设计
    13、单点登录
    14、redis缓存数据库一些思路
    http://blog.csdn.net/wang_keng/article/details/51760806
    15、文件上传下载
    http://www.jb51.net/article/87228.htm
    16、mybatis自动生成实体类插件配置参数是如何加载的呢?
    如何打印日志?

    ArtifactTransferException: Failure to transfer org.springframework:spring-beans:jar:4.2.5.RELEASE
    from http://repo.maven.apache.org/maven2 was cached in the local repository,
    resolution will not be reattempted until the update interval of central has elapsed or updates are forced.
    Original error: Could not transfer artifact org.springframework:spring-beans:jar:4.2.5.RELEASE from/to central
    (http://repo.maven.apache.org/maven2): No response received after 60000


    17、测试
    java -jar autotest -1.0.0








  • 相关阅读:
    事务传播机制,搞懂。
    洛谷 P1553 数字反转(升级版) 题解
    洛谷 P1200 [USACO1.1]你的飞碟在这儿Your Ride Is Here 题解
    洛谷 P1055 ISBN号码 题解
    洛谷 P2141 珠心算测验 题解
    洛谷 P1047 校门外的树 题解
    洛谷 P1980 计数问题 题解
    洛谷 P1008 三连击 题解
    HDU 1013 题解
    HDU 1012 题解
  • 原文地址:https://www.cnblogs.com/heng-yan/p/6346755.html
Copyright © 2011-2022 走看看