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

网站建设怎么报印花税如何营销推广

网站建设怎么报印花税,如何营销推广,wordpress固定设备登录,wordpress 文章格式化在SpringBoot开发调试中#xff0c;如果我每行代码的修改都需要重启启动再调试#xff0c;可能比较费时间#xff1b;SpringBoot团队针对此问题提供了spring-boot-devtools#xff08;简称devtools#xff09;插件#xff0c;它试图提升开发调试的效率。准备知识点什么是…在SpringBoot开发调试中如果我每行代码的修改都需要重启启动再调试可能比较费时间SpringBoot团队针对此问题提供了spring-boot-devtools简称devtools插件它试图提升开发调试的效率。准备知识点什么是热部署和热加载热部署和热加载是在应用正在运行的时候自动更新重新加载或者替换class等应用的一种能力。PSspring-boot-devtools提供的方案也是要重启的只是无需手动重启能实现自动加载而已。严格意义上我们需要区分下热部署和热加载, 对于Java项目而言热部署在服务器运行时重新部署项目它是直接重新加载整个应用这种方式会释放内存比热加载更加干净彻底但同时也更费时间。热加载在运行时重新加载class从而升级应用。热加载的实现原理主要依赖java的类加载机制实现方式可以概括为在容器启动的时候起一条后台线程定时的检测类文件的时间戳变化如果类的时间戳变掉了则将类重新载入。对比反射机制反射是在运行时获取类信息通过动态的调用来改变程序行为 热加载则是在运行时通过重新加载改变类信息直接改变程序行为。什么是LiveLoadLiveLoad是提供浏览器客户端自动加载更新的工具分为LiveLoad服务器和Liveload浏览器插件两部分 devtools中已经集成了LiveLoad服务器所以如果我们开发的是web应用并且期望浏览器自动刷新 这时候可以考虑LiveLoad.同一时间只能运行一个LiveReload服务器。 开始应用程序之前请确保没有其他LiveReload服务器正在运行。如果从IDE启动多个应用程序则只有第一个应用程序将支持LiveReload。配置devtools实现热部署我们通过如下配置来实现自动重启方式的热部署。POM配置添加spring-boot-devtools的依赖dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdoptionaltrue/optional !-- 可以防止将devtools依赖传递到其他模块中 --/dependency /dependenciesIDEA配置如果你使用IDEA开发工具通常有如下两种方式方式一 无任何配置时手动触发重启更新CtrlF9也可以用mvn compile编译触发重启更新方式二 IDEA需开启运行时编译自动重启更新设置1File-Setting-Build,Execution,Deployment-Compile勾选Make project automatically设置2快捷键ctrlaltshift/选择Registry勾选compiler.automake.allow.when.app.running新版本的IDEA可以在File-setting-Advanced Setttings里面的第一个设置application.yml配置spring:devtools:restart:enabled: true #设置开启热部署additional-paths: src/main/java #重启目录exclude: WEB-INF/**thymeleaf:cache: false #使用Thymeleaf模板引擎关闭缓存使用LiveLoadspring-boot-devtools模块包含嵌入式LiveReload服务器可以在资源更改时用于触发浏览器刷新。 LiveReload浏览器扩展程序支持ChromeFirefox和Safari你可以从livereload.com免费下载。或者从浏览器插件中心下载比如firefox:安装完之后可以通过如下图标管理如果你不想在应用程序运行时启动LiveReload服务器则可以将spring.devtools.livereload.enabled属性设置为false 。同一时间只能运行一个LiveReload服务器。 开始应用程序之前请确保没有其他LiveReload服务器正在运行。如果从IDE启动多个应用程序则只有第一个应用程序将支持LiveReload。进一步理解虽然一些开发者会使用devtool工具但是很少有能够深入理解的让我们理解如下几个问题帮助你进一步理解。devtool的原理为何会自动重启为什么同样是重启应用为什么不手动重启而是建议使用spring-boot-devtools进行热部署重启spring-boot-devtools使用了两个类加载器ClassLoader一个ClassLoader加载不会发生更改的类第三方jar包另一个ClassLoaderrestart ClassLoader加载会更改的类自定义的类。后台启动一个文件监听线程File Watcher监测的目录中的文件发生变动时 原来的restart ClassLoader被丢弃将会重新加载新的restart ClassLoader。因为文件变动后第三方jar包不再重新加载只加载自定义的类加载的类比较少所以重启比较快。这也是为什么同样是重启应用为什么不手动重启建议使用spring-boot-devtools进行热部署重启。在自动重启中有几点需要注意:自动重启会记录日志的记录在什么情况下重启的日志可以通过如下关闭spring:devtools:restart:log-condition-evaluation-delta: false排除一些不需要自动重启的资源某些资源在更改时不一定需要触发重新启动。默认情况下改变资源/META-INF/maven/META-INF/resources/resources/static/public或/templates不触发重新启动但确会触发现场重装。如果要自定义这些排除项可以使用该spring.devtools.restart.exclude属性。例如要仅排除/static/public你将设置以下属性spring:devtools:restart:exclude: static/**,public/**如果要保留这些默认值并添加其他排除项请改用该spring.devtools.restart.additional-exclude属性。自定义重启类加载器重启功能是通过使用两个类加载器来实现的。对于大多数应用程序这种方法效果很好。但是它有时会导致类加载问题。默认情况下IDE 中的任何打开项目都使用“重启”类加载器加载任何常规.jar文件都使用“基本”类加载器加载。如果你处理一个多模块项目并且不是每个模块都导入到你的 IDE 中你可能需要自定义一些东西。为此你可以创建一个META-INF/spring-devtools.properties文件。该spring-devtools.properties文件可以包含以restart.exclude和为前缀的属性restart.include。该include元素是应该被拉高到“重启”的类加载器的项目以及exclude要素是应该向下推入“Base”类加载器的项目。该属性的值是应用于类路径的正则表达式模式如以下示例所示restart:exclude:companycommonlibs: /mycorp-common-[\\w\\d-\\.]\\.jarinclude:projectcommon: /mycorp-myproj-[\\w\\d-\\.]\\.jar更多相关的信息可以在这里查看。devtool是否会被打包进Jardevtool原则上来说应该是只在开发调试的时候使用而在生产环境运行jar包时是不需要的所以Spring打包会不会把它打进JAR吗默认情况下不会被打包进JAR运行打包的应用程序时开发人员工具会自动禁用。如果你通过 java -jar或者其他特殊的类加载器进行启动时都会被认为是“生产环境的应用”。如果我们期望远程调试应用生产环境勿用只有在受信任的网络上运行或使用 SSL 进行保护时才应启用它在这种情况下devtool也具备远程调试的能力远程客户端应用程序旨在从你的 IDE 中运行。你需要org.springframework.boot.devtools.RemoteSpringApplication使用与你连接的远程项目相同的类路径运行。应用程序的唯一必需参数是它连接到的远程 URL。例如如果使用 Eclipse 或 Spring Tools并且你有一个my-app已部署到 Cloud Foundry 的名为的项目执行以下操作选择Run Configurations…从Run菜单。创建一个新的Java Application“启动配置”。浏览my-app项目。使用org.springframework.boot.devtools.RemoteSpringApplication作为主类。添加https://myapp.cfapps.io到Program arguments或任何你的远程 URL。正在运行的远程客户端可能类似于以下列表 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ ___ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | | _ \___ _ __ ___| |_ ___ \ \ \ \\\/ ___)| |_)| | | | | || (_| []::::::[] / -_) \/ _ \ _/ -_) ) ) ) ) |____| .__|_| |_|_| |_\__, | |_|_\___|_|_|_\___/\__\___|/ / / /|_||___//_/_/_/:: Spring Boot Remote :: 2.5.42015-06-10 18:25:06.632 INFO 14938 --- [ main] o.s.b.devtools.RemoteSpringApplication : Starting RemoteSpringApplication on pwmbp with PID 14938 (/Users/pwebb/projects/spring-boot/code/spring-boot-project/spring-boot-devtools/target/classes started by pwebb in /Users/pwebb/projects/spring-boot/code) 2015-06-10 18:25:06.671 INFO 14938 --- [ main] s.c.a.AnnotationConfigApplicationContext : Refreshing org.springframework.context.annotation.AnnotationConfigApplicationContext2a17b7b6: startup date [Wed Jun 10 18:25:06 PDT 2015]; root of context hierarchy 2015-06-10 18:25:07.043 WARN 14938 --- [ main] o.s.b.d.r.c.RemoteClientConfiguration : The connection to http://localhost:8080 is insecure. You should use a URL starting with https://. 2015-06-10 18:25:07.074 INFO 14938 --- [ main] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2015-06-10 18:25:07.130 INFO 14938 --- [ main] o.s.b.devtools.RemoteSpringApplication : Started RemoteSpringApplication in 0.74 seconds (JVM running for 1.105)devtool为何会默认禁用缓存选项Spring Boot 支持的一些库使用缓存来提高性能。例如模板引擎缓存已编译的模板以避免重复解析模板文件。此外Spring MVC 可以在提供静态资源时向响应添加 HTTP 缓存标头。虽然缓存在生产中非常有益但在开发过程中可能会适得其反使你无法看到刚刚在应用程序中所做的更改。出于这个原因 spring-boot-devtools 默认禁用缓存选项。比如Thymeleaf 提供了spring.thymeleaf.cache来设置模板引擎的缓存使用spring-boot-devtools模块时是不需要手动设置这些属性的因为spring-boot-devtools会自动进行设置。那么会自动设置哪些配置呢你可以在DevToolsPropertyDefaultsPostProcessor类找到对应的默认配置。public class DevToolsPropertyDefaultsPostProcessor implements EnvironmentPostProcessor {static {MapString, Object properties new HashMap();properties.put(spring.thymeleaf.cache, false);properties.put(spring.freemarker.cache, false);properties.put(spring.groovy.template.cache, false);properties.put(spring.mustache.cache, false);properties.put(server.servlet.session.persistent, true);properties.put(spring.h2.console.enabled, true);properties.put(spring.web.resources.cache.period, 0);properties.put(spring.web.resources.chain.cache, false);properties.put(spring.template.provider.cache, false);properties.put(spring.mvc.log-resolved-exception, true);properties.put(server.error.include-binding-errors, ALWAYS);properties.put(server.error.include-message, ALWAYS);properties.put(server.error.include-stacktrace, ALWAYS);properties.put(server.servlet.jsp.init-parameters.development, true);properties.put(spring.reactor.debug, true);PROPERTIES Collections.unmodifiableMap(properties);}当然如果你不想被应用属性被spring-boot-devtools默认设置 可以通过spring.devtools.add-properties到false你application.yml中。devtool是否可以给所有Springboot应用做全局的配置可以通过将spring-boot-devtools.yml文件添加到$HOME/.config/spring-boot目录来配置全局 devtools 设置。添加到这些文件的任何属性都适用于你机器上使用 devtools 的所有Spring Boot 应用程序。例如要将重新启动配置为始终使用触发器文件你需要将以下属性添加到你的spring-boot-devtools文件中spring:devtools:restart:trigger-file: .reloadtrigger如果我不用devtool还有什么选择如果我不用devtool还有什么选择在实际的开发过程中我也不会去使用devtool工具, 因为devtool本身基于重启方式这种仍然不是真正的热替换方案JRebel才是它是收费的开发调试最重要的还是一种权衡自动重启的开销如果和手动重启没有什么太大差别那么还不如手动重启按需重启多数情况下如果是方法内部的修改或者静态资源的修改在IDEA中是可以通过RebuildCtrl Shift F9进行热更的此外还有一个工具spring loaded 可实现修改类文件的热部署具体可看其github地址上的说明。示例源码https://download.csdn.net/download/DeveloperFire/87519876
http://www.dnsts.com.cn/news/231389.html

相关文章:

  • 书荒小说阅读器是哪个网站做的中国最好的网站建设有哪些
  • dede学校网站模板下载北京大型广告公司有哪些
  • 重庆网站推广入口网站建设 兼职 外包
  • 比58同城做的好的网站海口网约车资格证在哪里报名
  • 佛山网站设计中心wordpress批量发布器
  • vultr 搭建wordpress优化大师有必要安装吗
  • php开源网站网站备案 万网
  • 坪山商城网站建设哪家便宜成都外贸网站建设
  • 织梦音乐网站品牌建设运营的最高境界是
  • 秦皇岛哪里做网站上海响应式网站制作公司
  • 直播间 网站建设大理州城乡建设局官方网站
  • 万网网站根目录坪山公司网站建设
  • 成功的微网站wordpress购物分享主题
  • 免费空间建网站中小型网站建设与管理总结
  • 咸阳市建设银行网站51zwd一起做网站
  • 如何看一个关键词在某个网站是否被百度收录重庆营销网站
  • 网站开发与经营大庆加油app下载老版本
  • 自己建站的网站《网站开发实例》pdf下载
  • 旅游网站制作视频百度云七台河新闻哪里看回放
  • 个人适合做的网站重庆网络建站
  • 嘉兴专业自助建站免费咨询黄页88网企业名录
  • 上海手机站网站建设浙江网站建设电话
  • 建站出海网站建设的概念
  • 怎样免费设计网站建设word上下页边距怎么设置
  • 高校网站建设需求分析html5网站开发书籍
  • 利用百度图片做网站外链房地产网站的设计要求
  • 奇迹建站模板手机h5网站开发
  • 网站的建设框架英语作文模板高中
  • 在深圳找工作哪个网站好新品发布会ppt参考
  • 徐州网站建站静态网站更新