springboot
springboot
JavaGameServer
java游戏服务器
展开
-
1.最小化logback.xml 2.使用new Throwable打印出当前堆栈 3.Exception的打印方法
1)基于门面模式2)先配置好输出什么:如 线程、行数、时间、日志级别等。。 再配置好以什么方式输出:如 控制台、文件。 基本上logback的设计都是基于反射,配置的xml,其实就是调用set方法进行设置。而且设置的有实现类。3)可以自定义输出格式:如哪个包下,以什么样的日志级别输出。4)支持文件的切割,比如:以日期来作为文件命名,超过多大后,进行按照0、1、2、3这样子切割。例子:<?xml version="1.0" encoding="UTF-8"?>&l..原创 2021-11-28 20:32:22 · 1423 阅读 · 0 评论 -
【SpringBoot模块化】1.ApplicationListener<ApplicationContextEvent> 2.IService
【代码】【SpringBoot模块化】1.ApplicationListener<ApplicationContextEvent> 2.IService。原创 2024-08-23 23:00:10 · 184 阅读 · 0 评论 -
雪花算法理解(1高位+41位时间戳+10位机器位+12位自增序号) 及其使用豆包帮助下一个解决了时钟回拨的代码
3.游戏中,我们希望生成的id是有意义的,我们可以根据id去反推出一些业务信息。所以根据唯一的用户标识生成long类型的账号时,我们就会用到雪花算法。我们看下时间戳,发现是13位,2的10次方是1024也就是占据3位,所以需要2的41次方才到时间戳的位数。1.我们是不希望用UUID的,因为它是字符串,不利于索引的建立。3.机器id是固定的,10位的话,有1000多台肯定是用不完的。4.序列号,这个也许我们也可以用来表示一些自定义的业务。2.字符串内存占用大。为啥需要雪花算法呢?2.41位二进制的时间戳。原创 2024-08-21 10:02:14 · 331 阅读 · 0 评论 -
Bean初始化时 Order的问题
经过当前项目的使用, 我觉得还是只使用SpringBoot进行Bean管理就行,其他的流程控制则是自己搞。原创 2024-08-09 16:19:54 · 90 阅读 · 0 评论 -
【推荐!!!】使用CommandLineRunner完成启动时也从Bean容器获取对象
【代码】使用CommandLineRunner完成启动时也从Bean容器获取对象。原创 2024-05-13 16:26:46 · 189 阅读 · 0 评论 -
SpringBoot线上打包
也就是我们的jar,配置和启动脚本都已经放到指定目录。7)双击bin/start.sh就可以运行起来了。原创 2024-02-21 13:31:27 · 267 阅读 · 0 评论 -
SpringMVC 1.请求参数检查 2.全局异常处理 3.请求参数封装为Pojo
GlobalExceptionCatch.java // 全局异常捕获。LogicException.java // 逻辑异常封装。ResponseEntity.java // 返回值封装。ErrorEnum.java // 枚举所有的错误。IReuqest.java // 用于检查接口。原创 2024-02-08 14:17:56 · 947 阅读 · 0 评论 -
[@PostConstruct] 在Tomcat启动之前,会被调用,可以获取到Autowired中的内容
【代码】[@PostConstruct] 在Tomcat启动之前,会被调用,可以获取到Autowired中的内容。原创 2024-02-08 14:12:39 · 115 阅读 · 0 评论 -
创建新SpringBoot工程时pom文件内容
【代码】新SpringBoot工程pom。原创 2024-02-04 17:36:37 · 195 阅读 · 0 评论 -
1.设置转换器去掉SpringDataMongodb中的_class 2.通过环境获取变量
【代码】去掉SpringDataMongodb中的_class。原创 2024-01-21 22:15:11 · 445 阅读 · 0 评论 -
我的第一个starter
【代码】我的第一个starter。原创 2023-11-22 00:51:01 · 464 阅读 · 0 评论 -
使用SpringBoot进行游戏服务器开发
之前一直只考虑用JavaSe进行游戏服务器开发,目前项目使用了Spring,发现还是非常好的,尤其是依赖管理等,只使用Spring最基本的功能即可,这样子就算是有一些模块不使用Spring管理也是非常方便的,因为我现在已经能轻松控制住Spring容器的声明周期。原创 2023-11-18 14:59:37 · 944 阅读 · 0 评论 -
【SpringMVC快速使用】1.@RestController @RequestMapping 2.logback的使用
那是因为我们的管理后台之类的都是别人写的,我也听说了大家说:只用Post请求就足够了,但是却发现,再浏览器中测试时,默认是GET请求,如果直接写的@GetMapping,则提示此请求不支持。背景:为何从这个最简单的 例子写起呢?原创 2024-01-11 11:19:47 · 475 阅读 · 0 评论 -
【拦截器的使用】 1.HandlerInterceptorAdapter(拦截逻辑) 1.WebMvcConfigurer(配置哪些拦截器生效和拦截的路由)
2.LoginInterceptor.java // 拦截到后的逻辑(不包含拦截的路由)@RestController+@GetMapping实现路由。配置使用哪些拦截器(可配置多个) 和 拦截的路由。原创 2023-01-07 21:24:14 · 360 阅读 · 0 评论 -
【使用WebAsnycTask完成异步任务处理】 1.支持超时回调 2.支持错误回调
其实这种就是高并发下有些统一的设计规范,跟Netty服务器其实是差不多的,就是:一些线程仅仅用于接任务,处理不处理的过来先不说,先把任务接过来再说。其中指定的异步线程池定义为:// ThreadPoolTaskExecutor 为SpringBoot中的类。然后处理的线程是独立的异步线程池,这样子:把接任务和处理任务区分开。思考:为啥使用独立的线程池处理业务?原创 2022-12-27 14:47:23 · 297 阅读 · 1 评论 -
1.后置处理器(扫描包) 2.ApplicationListener接口(ApplicationContextEvent)+Orderd(容器刷新事件)
好处就是:启动代码无需修改,非常的短。想想在只使用javase时,为了扫描,那必须硬编码 MsgReceiver.init(xxx.instance);这样子的写法写在main方法中。同时,对于xxxContext,我们能方便的完成 资源的加载与释放:如:数据库的连接和关闭。现在使用Spring去管理我们的声明周期,那是比较简短的完成任务。原创 2022-08-25 14:53:58 · 204 阅读 · 0 评论 -
【新建SpringBoot工程运行进程直接退出原因】
"C:\Program Files\Java\jdk-11.0.6\bin\java.exe" -XX:TieredStopAtLevel=1 -noverify -Dspring.output.ansi.enabled=always "-javaagent:D:\IntelliJ IDEA 2020.3.1\lib\idea_rt.jar=54386:D:\IntelliJ IDEA 2020.3.1\bin" -Dcom.sun.management.jmxremote -Dspring.jmx.en.原创 2022-03-21 10:20:46 · 1013 阅读 · 0 评论 -
【SpringMVC动态填充url参数】 1.@PathVariable(“id“) Integer id
1)指定一个可变的参数,如:查找哪个id的用户@RestControllerpublic class UserController { @Autowired UserService userService; @GetMapping("getUserById/{id}") public User getUserById(@PathVariable("id") Integer id) { return userService.getUserById(i原创 2022-03-01 22:49:47 · 694 阅读 · 0 评论 -
【Environment】1.在配置类中通过环境获取yml中的配置(和Value对比呢)
@Configurationpublic class EnvironmentConfig { private static final Logger logger = LoggerFactory.getLogger(EnvironmentConfig.class); @Autowired private Environment environment; public int getServerPort() { return environment.g.原创 2022-02-27 21:59:47 · 488 阅读 · 0 评论