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








  • 相关阅读:
    studyframe项目总结
    js三级联动
    ajax提交,获取后台数据
    密码验证
    产生验证码
    使用泛型 ,做计算器
    web前端,css
    VS快捷键
    我的未来编码规范
    如何将CAJ文档转化为doc文档
  • 原文地址:https://www.cnblogs.com/heng-yan/p/6346755.html
Copyright © 2011-2022 走看看