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

提供网站建设服务平台百度竞价价格查询

提供网站建设服务平台,百度竞价价格查询,网站建设后台,搭建合作平台轻量级 ioc 框架 loveqq#xff0c;支持接口上传 jar 格式的 starter 启动器并支持热加载其中的 bean 热加载 starter 启动器代码示例#xff1a; package com.kfyty.demo;import com.kfyty.loveqq.framework.boot.K; import com.kfyty.loveqq.framework.boot.context.Contex… 轻量级 ioc 框架 loveqq支持接口上传 jar 格式的 starter 启动器并支持热加载其中的 bean 热加载 starter 启动器代码示例 package com.kfyty.demo;import com.kfyty.loveqq.framework.boot.K; import com.kfyty.loveqq.framework.boot.context.ContextRefresher; import com.kfyty.loveqq.framework.core.autoconfig.annotation.Autowired; import com.kfyty.loveqq.framework.core.autoconfig.annotation.BootApplication; import com.kfyty.loveqq.framework.core.autoconfig.annotation.Component; import com.kfyty.loveqq.framework.core.autoconfig.condition.annotation.ConditionalOnMissingBean; import com.kfyty.loveqq.framework.core.lang.JarIndexClassLoader; import com.kfyty.loveqq.framework.core.utils.IOC; import com.kfyty.loveqq.framework.web.core.annotation.GetMapping; import com.kfyty.loveqq.framework.web.core.annotation.RequestMapping; import com.kfyty.loveqq.framework.web.core.annotation.RestController; import com.kfyty.loveqq.framework.web.core.autoconfig.annotation.EnableWebMvc; import com.kfyty.loveqq.framework.web.core.multipart.MultipartFile; import lombok.extern.slf4j.Slf4j;import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.security.cert.Extension; import java.util.Collections; import java.util.UUID; import java.util.jar.JarFile;Slf4j EnableWebMvc RestController BootApplication RequestMapping(expose true) // 自动暴露 public 方法为 POST http 接口 public class Main {Autowiredprivate Extension extension;/*** 测试接口*/GetMappingpublic String sayHello() {return extension.getId();}/*** 加载插件** param jar jar 包 启动器* return 上传后的 jar 包绝对路径卸载启动器时需要提供该返回值*/public String loadPlugin(MultipartFile jar) throws Exception {// 保存到本地String filePath D:\\temp\\jar\\ UUID.randomUUID().toString().replace(-, ) \\ jar.getOriginalFilename();File jarFile new File(filePath);jar.transferTo(jarFile);// 添加到框架 ClassLoaderJarIndexClassLoader classLoader (JarIndexClassLoader) IOC.class.getClassLoader();classLoader.addJarIndex(Collections.singletonList(new JarFile(jarFile)));// 刷新上下文ContextRefresher.refresh(IOC.getApplicationContext());return jarFile.getAbsolutePath();}/*** 卸载启动器** param jarPath {link #loadPlugin(MultipartFile)} 的返回值*/public String unloadPlugin(String jarPath) throws Exception {// 构建 File 对象File jarFile new File(jarPath);// 从框架 ClassLoader 移除JarIndexClassLoader classLoader (JarIndexClassLoader) IOC.class.getClassLoader();classLoader.removeJarIndex(Collections.singletonList(new JarFile(jarFile)));// 刷新上下文ContextRefresher.refresh(IOC.getApplicationContext());return ok;}public static void main(String[] args) throws Exception {K.run(Main.class, args);}/*** 默认实现*/ComponentConditionalOnMissingBean(Extension.class)public static class DefaultExtension implements Extension {Overridepublic String getId() {return default;}Overridepublic boolean isCritical() {return false;}Overridepublic byte[] getValue() {return new byte[0];}Overridepublic void encode(OutputStream out) throws IOException {}} }然后新建一个项目添加如下类 package com.kfyty.graal.example;import com.kfyty.loveqq.framework.core.autoconfig.annotation.Component;import java.io.IOException; import java.io.OutputStream; import java.security.cert.Extension;/*** 动态加载示例实现*/ Component public class ExampleExtension implements Extension {Overridepublic String getId() {return example;}Overridepublic boolean isCritical() {return false;}Overridepublic byte[] getValue() {return new byte[0];}Overridepublic void encode(OutputStream out) throws IOException {} }并在 k.factories 中添加 com.kfyty.loveqq.framework.core.autoconfig.annotation.EnableAutoConfigurationcom.kfyty.graal.example.ExampleExtension然后打成 jar 包就是一个启动器了。 接着启动第一段代码的 main 方法后 先访问http://localhost:8080/sayHello将返回 default 然后使用 postman 上传启动器 jar 包http://127.0.0.1:8080/loadPlugin此时将动态加载上传的启动器并刷新 ioc 容器 然后再访问http://localhost:8080/sayHello将返回 example原因是加载了新的启动器条件注解生效实现类变化了 然后再访问http://127.0.0.1:8080/unloadPlugin将第二步的返回值作为入参传入此时将卸载启动器并刷新 ioc 容器 然后再访问http://localhost:8080/sayHello将返回 default原因是卸载了之前加载的启动器条件注解生效实现类又变化了 从而实现了启动器的热加载感兴趣的同学可以试一下。 gitee/github/gitcode: loveqq-framework
http://www.dnsts.com.cn/news/18368.html

相关文章:

  • 国外做科普视频的网站知言 wordpress
  • 哪里可以下企业网站模板广东省农业农村厅彭彬
  • 网站添加内容宁波网络推广公司核心秘密
  • 横沥做网站免费建网站哪家好
  • 端端网站开发领地免费网站
  • 网站业务功能设计阿里云服务器做盗版电影网站
  • 南昌网站制作代理商python手机在线编程
  • 建设网站用什么小米网站 用什么做的
  • 托育项目建设背景及必要性医疗网站优化
  • 阿里巴巴网站建设目的网站开发项目进度安排
  • 怎么在中国做网站网站涿鹿县建设局网站
  • 网站源码上传到哪个文件夹酷家乐软件下载电脑版
  • 温州建站方案seo关键词排名系统
  • 图列说明网站开发的流程宁波网站制作首荐荣盛网络好
  • 企业网站的必要性宣传页在线设计软件
  • 做营销型网站的教程推广公司的网站可以采取哪些方式
  • 西部网站管理助手flash网站用什么做
  • 做网站需要会什么 知乎wordpress搜索框选择分类
  • 龙游县住房和城乡建设局网站wordpress 屏蔽ftp
  • 焦作专业做网站公司个人网站前置审批项
  • 天门网站网站建设简单的静态网站
  • 优化网站方法vue小程序开发教程
  • 简单详细搭建网站教程视频网站后台插件下载
  • 泉州网站建设案例网站备案容易通过吗
  • 德成建设集团有限公司网站wordpress 后台添加文章 没编辑功能
  • 大连 响应式网站公益机构网站建设方案
  • 网站建设的几点体会网站诊断方法
  • 百度收录不了网站怎样在中国建设银行网站开通短信提醒
  • 泉州专业网站制作定制石家庄中企动力
  • 本网站只做信息展示不提供在线交易网络公司门头