同步操作将从 game-moba/project_1964322 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
application-dev.yml——开发环境;
application-test.yml——测试环境;
application-prod.yml——生产环境;
application.yml——通用配置,与环境无关
启动参数添加spring.profiles.active=xxx,加载特定环境的配置;
Spring 可以加载Jar外的配置文件,部署项目后修改配置文件重新启动项目即可应用;
配置文件使用
配置文件新增配置项(yaml格式)
chess:
buss:
key: value
对应到配置类Chess.java中
//每个接口对应一层
@Config
public interface Chess {
interface Buss{
String key=null;
}
}
配置使用,直接作为接口属性读取
注意事项
新增配置文件对应的接口类,加上@Config即可
配置项分层,取接口全小写或者字段名
如interface Chess对应chess
field Key 对应Key
@Config(name="key_name")可自定义名称
锁排序原理
对象锁对象
排序顺序说明:
1.非实体在前,实体{@link AbstractEntity}在后
2.不同类型的锁对象,用完整类名做字符串排序
3.类型相同时,根据排序依据
进行排序
4.排序依据
对于非实体而言,为System.identityHashCode(instance)
5.排序依据
对于实体而言,为{@link AbstractEntity#getId()};
项目使用
static class TestLockThread extends Thread {
List<TestEntity> list;
public TestLockThread(List<TestEntity> list) {
this.list = list;
}
@Override
public void run() {
ChainLock chainLock = LockUtils.getLock(list);
chainLock.lock();
try {
int count = 0;
for (TestEntity entity : list) {
for (int i = 0; i < 10000 * 3000; ++i) {
entity.doTask();
++count;
}
}
System.out.println("结束:" + count);
} finally {
chainLock.unlock();
}
}
}
游戏服配置格式
*参考chess/config目录的测试配置表.xlsx
项目使用
public class TestConfig {
public static void main(String[] args) {
try {
ConfigUtils.loadAllConfig("config", "com.three.gameconfig");
} catch (GameException e) {
System.out.println(e.getErrorMsg());
} catch (Exception e) {
e.printStackTrace();
}
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。