发表于: 2017-10-23 23:42:34

2 698


今天完成的事情:

1. memcache整合完成

2. 对象的序列化

3. maven指定仓库(真正 的 指定)

4. 事务管理器的更新

5. jmater压测


明天计划的事情

1. linux安装memcache

2. 部署项目至没有问题

2. 了解缓存穿透,模拟缓存穿透

3. 了解redis



遇到的问题:

1. IDEA 出现编译错误 Multi-catches are not supported a this language level 解决方法

  1.   1. 首先检查"File" -> "Project Structure" -> "Project settings" -> "Project" -> "Project language level"是不是已经设置成(支持某种语法的jdk版本8
   2、检查project下面的module,如果有多个,那么单独查看相关的(如果不清楚哪个相关就认为是所有)module的“language level”是不是都设置成(支持某种语法的jdk版本)  8,如果还不行请看第3步;
   3.终极办法就是在pom.xml的<plugins>节点里添加一下配置 <source>和<target>配需要的jdk版本
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration></plugin>

   最后还有设置一下java compiler的jdk版本,"File" -> "Settings" -> "Build,Execution,Deployment" -> "Compiler"  -> "javaCompiler" 右边区域的Project bytecode version 和Per-moudle bytecode version 设置成相应的JDK版本。


使用IDEA编译Java代码的过程中出现下面这样一个错误:

Error:java: javacTask: source release 1.5 requires target release 1.5

http://blog.csdn.net/jiaobuchong/article/details/50102949

以上可以解决一下问题:

解决switch用string类型的报错问题,和实现接口不能用@Override






收获:

1. memcache整合完成与对象的序列化

为什么对象要序列化?

memcache不能存储一个JAVA对象除String外

所以要求序列化存储在memcache 里

JAVA有自带的工具,但是我看JAVA自带的工具代码繁杂,而且网上说阿里的fastjson处理快(主要还是自带的嫌麻烦)

所以我用阿里的json处理器

<dependency>
 <groupId>com.alibaba</groupId>
 <artifactId>fastjson</artifactId>
 <version>1.2.31</version>
</dependency>


例子:

public List<Student> listStudentTable (){
    List<Student> students = null;
    String deserialization = (String)MemcachedUtil.get("listStudentTable");
    if(deserialization != null){
        //对象反序列化
        students = JSON.parseObject(deserialization,List.class);
        logStuSerImpl.info("从缓存获取 listStudentTable");
        return students;
    }
    else {
        try {
            students = studentMapper.listStudentTable();
        } catch (NullPointerException e) {
        /*手动抛出 RuntimeException 异常进行事物回滚*/
            e.printStackTrace();
        }
        //对象序列化
        String serialization = JSON.toJSONString(students);
        boolean success = MemcachedUtil.set("listStudentTable",serialization,new Date(1000*60*60));
        logStuSerImpl.info("是否成功存入缓存: "+ success);
        return students;
    }
}




2. maven指定仓库(真正 的 指定)

指定项目的仓库地址: 在m2文件下的setting中
<settings>   
  <localRepository>D:\huanjing\.m2\repository</localRepository>   
</settings> 
指定全局的仓库地址:在maven根目录下的conf的setting
<settings>   
  <localRepository>D:\huanjing\.m2\repository</localRepository>   
</settings> 


mvn help:effective-settings

擦看maven的地址



3. 事务管理器的更新

原来的那周已经被spring废弃,需要用新的方法

(看网上的分析,主要的东西没怎么变,果然是道常恒,技常变。记住方法名称什么的,对自己的提高没什么大的帮助)

@Rollback(value = true)
//标记,使事务管理器来管理识别
@Transactional(transactionManager = "transactionManager")


4. jmater压测

当进行登陆页面的压测时,有一些链接会在拦截器的for循环处报空指针

不知道什么原因

并发在10 循环10次

在访问JSP时90%在124

访问JSON时30

统计controller的处理时间最大在27,所以时间大都花在视图解析上了。


进度: 

         任务开始时间:10.13

         预计完成时间:10.25

         是否有延期风险:有

        看看缓存穿透是什么。

禅道:http://task.ptteng.com/zentao/project-task-264.htm




返回列表 返回列表
评论

    分享到