当前位置: 首页 > news >正文

江苏城工建设科技有限公司网站企业解决方案提供商

江苏城工建设科技有限公司网站,企业解决方案提供商,wordpress 前台登陆,中国建设教育网站背景#xff1a;为何从这个最简单的 例子写起呢#xff1f; 那是因为我们的管理后台之类的都是别人写的#xff0c;我也听说了大家说#xff1a;只用Post请求就足够了#xff0c;但是却发现#xff0c;在浏览器中测试时#xff0c;默认是GET请求#xff0c;如果直接写…背景为何从这个最简单的 例子写起呢 那是因为我们的管理后台之类的都是别人写的我也听说了大家说只用Post请求就足够了但是却发现在浏览器中测试时默认是GET请求如果直接写的PostMapping则提示此请求不支持。 有了SpringBoot开发部署一个Web项目是非常加单的。对比ASP.Net Core 和go的繁琐(因为很多东西需要自己从头做)SpringBoot是做到了开箱即用我们引入需要的starter使用依赖注入即可引入我们需要的service类结合dubbo我们可以轻松的实现微服务(也就是这个接口的实现是别的服务做的)。不管是同步还是异步都是非常的简单的。 1)我们的游戏服务器是从“平台”账号注册开始的那么我们就从这里开始 package com.example.springbootdemo.controller;import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;Slf4j RestController RequestMapping(/account) public class AccountController {/*** param username* param password*/RequestMapping(/register)public void register(String username, String password) {log.info(新用户注册,username{}, password{}, username, password);} }/* 2024-01-11T11:10:10.42108:00 INFO 32040 --- [nio-8080-exec-5] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa 2024-01-11T11:10:10.64708:00 INFO 32040 --- [nio-8080-exec-6] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa 2024-01-11T11:10:10.85008:00 INFO 32040 --- [nio-8080-exec-7] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa 2024-01-11T11:10:11.01408:00 INFO 32040 --- [nio-8080-exec-8] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa 2024-01-11T11:10:11.18708:00 INFO 32040 --- [nio-8080-exec-2] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa 2024-01-11T11:10:11.36208:00 INFO 32040 --- [io-8080-exec-10] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa 2024-01-11T11:10:13.56208:00 INFO 32040 --- [nio-8080-exec-9] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa 2024-01-11T11:15:47.58808:00 INFO 32040 --- [nio-8080-exec-5] c.e.s.controller.AccountController : 新用户注册,usernamexx, passwordaa */ 2)日志肯定是少不了的 在pom.xml中引入下logback日志包 // 注意不要带版本号不然打包时就会提示logback版本号冲突了我们使用继承过来的版本即可 !-- log --dependencygroupIdorg.slf4j/groupIdartifactIdslf4j-api/artifactId !-- version1.7.25/version--/dependencydependencygroupIdorg.slf4j/groupIdartifactIdjcl-over-slf4j/artifactId !-- version1.7.7/version--/dependencydependencygroupIdch.qos.logback/groupIdartifactIdlogback-classic/artifactId !-- version1.2.3/version--/dependencydependencygroupIdch.qos.logback/groupIdartifactIdlogback-core/artifactId !-- version1.2.3/version--/dependency 接着把zfoo的logback.xml粘贴过来放到resources下面即可: ?xml version1.0 encodingUTF-8?configuration scanfalse debugfalseproperty nameLOG_HOME valuelog//property namePATTERN_FILE value%d{yyyy-MM-dd HH:mm:ss} [%-5level] [%thread] %logger.%M\(%F:%line\) - %msg%n/property namePATTERN_CONSOLE value%d{yyyy-MM-dd HH:mm:ss} [%highlight(%-5level)] [%thread] %logger{30}.%M\(%F:%L\) - %msg%n/!-- 负责写日志,控制台日志会打印所有的包的所有级别日志 --appender namezfoo_console classch.qos.logback.core.ConsoleAppenderencoderpattern${PATTERN_CONSOLE}/patterncharsetUTF-8/charset/encoder/appender!-- debug日志只有一个文件只收集debug级别日志每次启动会覆盖以前的debug日志 --appender namezfoo_debug classch.qos.logback.core.FileAppenderfile${LOG_HOME}/debug.log/file!-- append: true,日志被追加到文件结尾; false,清空现存文件;默认是true --appendfalse/appendencoderpattern${PATTERN_FILE}/patterncharsetUTF-8/charset/encoderfilter classch.qos.logback.classic.filter.LevelFilterleveldebug/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!-- infowarnerror级别的日志都会添加在info.log日志中 --!-- 滚动记录文件先将日志记录到指定文件当符合某个条件时将日志记录到其他文件 --appender namezfoo_info classch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_HOME}/info.log/filerollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy!-- rollover daily --fileNamePattern${LOG_HOME}/info.%d{yyyy-MM-dd}.%i.log/fileNamePattern!-- each file should be at most 100MB, keep 30 days worth of history, but at most 40GB --maxFileSize100MB/maxFileSizemaxHistory30/maxHistorytotalSizeCap40GB/totalSizeCap/rollingPolicyencoderPattern${PATTERN_FILE}/PatterncharsetUTF-8/charset/encoderfilter classch.qos.logback.classic.filter.ThresholdFilterlevelinfo/level/filter/appender!-- 异步输出 --appender namezfoo_async_info classch.qos.logback.classic.AsyncAppender!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 --discardingThreshold0/discardingThreshold!-- 更改默认的队列的深度,该值会影响性能.默认值为256 --queueSize512/queueSize!-- 添加附加的appender,最多只能添加一个 --appender-ref refzfoo_info//appender!-- 只收集error级别的日志 --appender namezfoo_error classch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_HOME}/error.log/filerollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicyfileNamePattern${LOG_HOME}/error.%d{yyyy-MM-dd}.%i.log/fileNamePatternmaxFileSize100MB/maxFileSizemaxHistory30/maxHistorytotalSizeCap20GB/totalSizeCap/rollingPolicyencoderPattern${PATTERN_FILE}/PatterncharsetUTF-8/charset/encoderfilter classch.qos.logback.classic.filter.LevelFilterlevelerror/levelonMatchACCEPT/onMatchonMismatchDENY/onMismatch/filter/appender!-- 根logger --root levelinfoappender-ref refzfoo_console/appender-ref refzfoo_debug/appender-ref refzfoo_async_info/appender-ref refzfoo_error//rootlogger namech.qos.logback levelinfo/logger nameorg.springframework levelinfo/logger nameio.netty levelinfo/ /configuration3)结合lombok的Slf4j注解我们可以很轻松打印的日志(想想go或者asp.net core的话自己不是太熟悉还是得折腾半天) 4)测试 浏览器中发起下请求:  http://localhost:8080/account/register?usernamexxpasswordaa 注意从浏览器中粘贴下来可能不是这样子了这是因为进行了编码 http://localhost:8080/account/register?username%22xx%22password%22aa%22 观察下idea下的日志可以看出来这个日志是非常清楚的 时间日志级别线程日志是从哪个类打印出的跳转信息等非常清楚 5)打包也很容易了开箱即用。  -------------另外一个用到的----------- ?xml version1.0 encodingUTF-8 ? configurationproperty nameLOG_DIR value./logs/appender nameSTDOUT classch.qos.logback.core.ConsoleAppenderencoder !-- pattern[%-5level][%d{HH:mm:ss.SSS}][%thread][%logger{30}][%L] - %msg%n/pattern--pattern%d{yyyy-MM-dd HH:mm:ss} [%highlight(%-5level)] [%thread] %logger{30}.%M\(%F:%L\) - %msg%n/pattern/encoder/appender!-- perf4j --appender nameROLLFILEclassch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_DIR}/game.log/filerollingPolicyclassch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${LOG_DIR}/game.%d{yyyyMMdd}.log/fileNamePatternmaxHistory30/maxHistory/rollingPolicyencoderpattern[%-5level][%d{HH:mm:ss.SSS}][%thread][%logger][%L] - %msg%n/pattern/encoder/appenderappender nameMONITOR_INFO classch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_DIR}/monitor.log/filerollingPolicy classch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${LOG_DIR}/monitor.%d{yyyyMMdd}.log/fileNamePatternmaxHistory30/maxHistory/rollingPolicyencoderpattern[%-5level][%d{HH:mm:ss.SSS}][%thread][%logger][%L] - %msg%n/pattern/encoder/appenderappender namePERF4J_ROLLFILEclassch.qos.logback.core.rolling.RollingFileAppenderfile${LOG_DIR}/game-perf.log/filerollingPolicyclassch.qos.logback.core.rolling.TimeBasedRollingPolicyfileNamePattern${LOG_DIR}/game-perf.%d{yyyyMMdd}.log/fileNamePatternmaxHistory30/maxHistory/rollingPolicyencoderpattern%msg%n%ex/pattern/encoder/appenderappender namePERF4J_STATISTICSclassorg.perf4j.logback.AsyncCoalescingStatisticsAppenderappender-ref refPERF4J_ROLLFILE/timeSlice60000/timeSlice/appenderappender nameASYNC_ROLLFILE classch.qos.logback.classic.AsyncAppenderappender-ref refROLLFILE/queueSize1024/queueSizemaxFlushTime3000/maxFlushTime/appenderappender nameDispatchSingleThreadMgr classch.qos.logback.classic.AsyncAppenderappender-ref refMONITOR_INFO/queueSize1024/queueSizemaxFlushTime3000/maxFlushTime/appenderlogger nameorg.perf4j.TimingLogger levelINFO additivityfalseappender-ref refPERF4J_STATISTICS//loggerlogger namecom.elex.framework.core.thread.DispatchSingleThreadMgr levelINFO additivityfalseappender-ref refDispatchSingleThreadMgr//loggerlogger nameorg.springframework levelINFO additivityfalse/logger nameorg.apache.http.impl levelINFO additivityfalse/logger nameorg.apache.ibatis levelINFO additivityfalse/logger nameorg.apache.http levelINFO additivityfalse/logger nameorg.mybatis levelINFO additivityfalse/logger nameorg.apache.thrift levelINFO additivityfalse/logger nameorg.mongodb levelINFO additivityfalse/logger nameorg.apache.zookeeper levelINFO additivityfalse/logger namecom.elex.icefire.scene.object.SO_PlayerCity levelwarn/logger namecom.elex.billion.icefire.way.service.FindWayWorker leveloff/logger namecom.elex.icefire.scene.object.model.SceneMove leveloff/logger namecom.elex.icefire.scene.AbstractScene leveloff/logger namecom.elex.icefire.scene.object.AbstractSceneObject leveloff/logger namecom.elex.icefire.scene.object.playerTroop.SO_PlayerTroop leveloff/logger namecom.elex.icefire.scene.object.resource.SO_NormalResource leveloff/root leveldebugappender-ref refSTDOUT/appender-ref refASYNC_ROLLFILE//root /configuration
http://www.hkea.cn/news/14575248/

相关文章:

  • 网站建设的目的意义茂名网站开发
  • 外贸流程询盘发盘网站常用的优化方法
  • 建立网站原则做网站需要注册哪类商标
  • 个人做论坛网站需要哪些备案网站营销策划公司
  • 金华网站建设电话网站服务器 免费
  • 泉州市做网站优化大良陈村网站建设
  • 搜索引擎是软件还是网站微信商城怎么开店
  • 色和尙做爰网站网站技能培训
  • 班级网站建设的范围浙江建设信息网港
  • 遥阳科技网站建设销售新网站推广策略
  • 西安专业建网站网站页面切换效果
  • 公司网址备案能用多少网站wordpress 输出豆瓣
  • 珠海网站系统建设网络推广营销技巧
  • 惠州有没有做网站通州顺德网站建设
  • 27寸显示器网站建设今天最新军事新闻
  • 网站优化北京seo开发网站需要怎么做
  • 顺义城区网站建设wordpress $ order点击数
  • 网站这么推广偷的网站怎么做seo
  • 推广网站文案上海松江网站制作
  • 网站建设管理工作总结报告景山网站建设
  • 常州企业网站建站模板宝安网站设计哪家好
  • 网站建设策划书格式及范文如何增加网站关键词
  • 最美情侣免费视频google seo推广
  • 网站建设招标合同要求无线wifi图片大全
  • 合肥专业做淘宝网站天津营销网站建设公司哪家好
  • 网站建设服务哪家加强网站信息内容建设
  • 网站建设的实际价值wordpress出现开玩笑
  • python的网站开发网站设计目前和将来的就业前景
  • 网站建设项目方案模板个人网站空间怎么做
  • 如何做下载网站网站建设推广优化排名