- 浏览: 25399 次
- 性别:
- 来自: 杭州
最新评论
-
cccai_1234:
code解析还不完全对,每个字节码指令后的参数还没学习到,所以 ...
class文件解析
文章列表
遇到一个问题需要配置Springboot的项目可以访问静态资源,百度了一下网上一大堆都是怎么说直接将静态文件放置到resources目录下就行,但是一波猛如虎的操作后发现并没有什么卵用。
直到我在配置文件里加入以下两行配置之后,终于可以直接访问到
spring.mvc.static-path-pattern=/**
spring.resources.static-locations=classpath:/templates
目录结构如下图
访问链接为 http://127.0.0.1:8080/hello.html
没问题,很稳。终于可以了但是为 ...
网上总结的几种分布式session的处理方案,这里做下记录。
大家都知道,服务一般分为有状态和无状态,而分布式sessoion就是针对有状态的服务。
分布式Session的几种实现方式
基于数据库的Session共享
基于resin/tomcat web容器本身的session复制机制
基于oscache/Redis/memcached 进行 session 共享。
基于cookie 进行session共享
分布式Session的几种管理方式
网上总结的软负载均衡的几种策略,这里做个简单的记录。
主要有轮询,随机,哈希,最快响应,最小并发等几个策略,这几种策略都有具体的几种算法
1、rr 轮询调度算法。顾名思义,轮询分发请求。
优点:实现简单
缺点:不考虑每台服务器的处理能力
2、wrr 加权调度算法。我们给每个服务器设置权值weight,负载均衡调度器根据权值调度服务器,服务器被调用的次数跟权值成正比。
昨天自己学习dubbo配置的时候启动项目报了一个如下错误,这里记录一下
Caused by: java.lang.IllegalStateException: Duplicate spring bean id xx
字面理解的意思是有重复的bean,检查了一下是接口上使用了注解进行bean注入,然后xml里又进行了一次显式的配置注入bean导致出现此错误,修改去除重复的配置就解决了这个问题
打算以后把平时遇到的一些报错都记录下来,养成一个好习惯。这里记录第一个。
昨天遇到一个mysql数据库操作错误,但是并没有提示具体的数据库字段错误信息。只是报了如下错误Cause: com.mysql.jdbc.MysqlDataTruncation: Data truncation: #22001。大概是说字段值长度超过限制的意思,通过排查最终发现了具体报错的字段。这里记录一下,方便以后再次遇到时快速解决。
Class.class文件解析
最近在看jvm相关的书,看到关于class文件结构的部分。就自己写了一个类并编译成class文件尝试着自己来解析一下加深认识和印象(为了方便学习去除了某些重复的方法)。
class文件全部内容如下所示:
CAFEBABE 00000031 00340A00 08002509 00050026 09000500 270A0028 00290700 2A0A002B 002C0A00 2B002D07 002E0700 2F010005 6669656C 64010012 4C6A6176 612F6C61 6E672F53 7472696E 673B010 ...
昨天调试的时候偶然发现后台报了一个空指针异常,仔细跟踪了下发现浏览器一次请求后台代码执行了两次而且两次的传参不相同。仔细检查了代码中没有发送第二次请求的地方后又检查浏览器的请求记录发现并没有产生两次请求后台的情况,这下就百思不得其解了。之后在同事的机器上检查是否存在此问题,并没有发现。所以怀疑是我机器的问题就没有再追究下去。可是今天早上重启机器后此问题依然存在,特喵的这就忍不了了啊!!!于是各种搜索各种调试均未发现所在,于是我换了一个浏览器再试一下(因为是谷歌的脑残粉,所以没有往浏览器方面上思考)。换了Safari之后发现不存在这个问题啊!豁然开朗啊有木有???找到问题了,但是谷歌狗日的不可能啊 ...
最近研究了下生成mybatis数据库和实体类映射的文件原理。这里总结一下:
要想生成这些映射文件,首先要得到数据库表中的字段相关信息。mysql中存在一个数据库来存储用户新建的数据库、表等相关信息,我们可以通过查询这个数据库中的相关表来获取我们新建的数据库和表的信息。这样的话我们就可以获取相关表的字段名、类型、是否是主键外健等信息,然后根据这些信息生成对应的实体类中的字段名及类型。生成实体类之后生成mapper文件及xml都是可以实现的了,只是可能比较复杂尤其是会有些一对多、多对一啥的问题。用到的主要是数据库information_schema中的COLUMNS表。具体的sql如下:
s ...
今天看书的时候讲解了jvm几块内存区域的内存溢出情况,这里总结一下加深印象。
主要有两种内存溢出问题:1.outofmemory;2.stackoverflow。
四块内存区域:1.java堆溢出;2:虚拟机栈和本地方法栈溢出;3.方法区和运行时常量池溢 ...
今天在研究学习ThreaLocal的时候发现一个问题。如下:
我在main方法中新建了两个线程并调用他们的run()方法,并在run()方法里打印当前的线程信息,发现自始至终都只有一个main线程比较疑惑,随后我把run()方法改为start() ...
今天看到工厂模式。工厂模式主要有三种,简单工厂模式,工厂方法模式,抽象工厂模式。
对于前两种简单工厂和工厂方法两者很相近,个人理解可以说工厂方法是简单工厂的一种扩展吧。
1.简单工厂模式
简单工厂模式主要包括抽象产品、具体产品、工厂三个角色。举一个具体的代码例子
/**
* 抽象手机
*/
interface Phone {
public void display();
}
/**
* 具体苹果手机
*/
class ApplePhone implements Phone {
public void display() {
System. ...
复习下一些设计模式,第一个就是策略模式,在网上找了些资料看到了很多例子,这里自己也想出了一个例子,方便理解或以后忘记了回忆起来方便。
汽车启动、行驶、刹车停止这个过程中涉及到加速行驶、匀速行驶、减速行驶几种形式的行驶。
这里定义一个接口叫做行驶(Travel)
/**
* 行驶的行为接口
*/
interface Travel {
/**
* 行驶方法
*/
public void travel();
}
/**
* 加速行驶
*/
class FastTravel implements Travel {
publ ...
最近在复习JAVA的一些基础知识,看到有关于static关键字的知识,这里做一个笔记。
1.static修饰变量、方法
被static修饰的变量、方法被称为静态变量、方法。我们可以直接调用这些变量、方法而不需要创建它们所在类的实例。静态方法中只能直接使用静态变量而不能使用类的非静态变量,也只能调用其它静态方法。
2.static修饰一个语句块
被static修饰的语句块被称为静态语句块。静态语句块在类加载时即执行,会在main方法及构造函数前执行且只会执行一次。
3.static修饰内 ...
最近在研究redis,所以简单的搭建了一个框架用来学习。这里做个笔记来记录下。
此框架包含spring的缓存注解支持,配置文件去掉了一些不必要的其它业务配置,只展示了一些基本配置
1.mybatis相关配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-in ...