Spring Boot

SpringBoot读取Resource下文件的几种方式

限于喜欢 提交于 2020-12-01 01:49:42
最近在项目中涉及到Excle的导入功能,通常是我们定义完模板供用户下载,用户按照模板填写完后上传;这里待下载模板位置为resource/excelTemplate/test.xlsx,尝试了四种读取方式,并且测试了四种读取方式分别的windows开发环境下(IDE中)读取和生产环境(linux下jar包运行读取)。 第一种: ClassPathResource classPathResource = new ClassPathResource("excleTemplate/test.xlsx"); InputStream inputStream =classPathResource.getInputStream(); 第二种: InputStream inputStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("excleTemplate/test.xlsx"); 第三种: InputStream inputStream = this.getClass().getResourceAsStream("/excleTemplate/test.xlsx"); 第四种: File file = ResourceUtils.getFile("classpath:excleTemplate

补习系列(13)-springboot redis 与发布订阅

雨燕双飞 提交于 2020-12-01 01:48:14
一、订阅发布 订阅发布 是一种常见的设计模式,常见于消息系统的场景。 如下面的图: [来自百科] 消息发布者是消息载体的生产者,其通过某些主题来向 调度中心 发送消息; 而消息订阅者会事先向 调度中心 订阅其 "感兴趣" 的主题,随后会获得新消息。 在这里, 调度中心 是一个负责消息控制中转的逻辑实体,可以是消息队列如ActiveMQ,也可以是Web服务等等。 常见应用 微博,每个用户的粉丝都是该用户的订阅者,当用户发完微博,所有粉丝都将收到他的动态; 新闻,资讯站点通常有多个频道,每个频道就是一个主题,用户可以通过主题来做订阅(如RSS),这样当新闻发布时,订阅者可以获得更新。 二、Redis 与订阅发布 Redis 支持 (pub/sub) 的订阅发布能力,客户端可以通过channel(频道)来实现消息的发布及接收。 1. 客户端通过 SUBSCRIBE 命令订阅 channel 2. 客户端通过PUBLISH 命令向channel 发送消息; 而后,订阅 channel的客户端可实时收到消息。 除了简单的SUBSCRIBE/PUBLISH命令之外,Redis还支持订阅某一个模式的主题(正则表达式), 如下: PSUBSCRIBE / topic / cars /* 于是,我们可以利用这点实现相对复杂的订阅能力,比如: 在电商平台中订阅多个品类的商品促销信息; 智能家居场景

解惑!全面解读 Spring Profile 的用法

怎甘沉沦 提交于 2020-12-01 00:20:21
一、简介 Profile的意思是配置,对于应用程序来说,不同的环境需要不同的配置。 比如: 开发环境,应用需要连接一个可供调试的数据库单机进程 生产环境,应用需要使用正式发布的数据库,通常是高可用的集群 测试环境,应用只需要使用内存式的模拟数据库 Spring框架提供了多profile的管理功能,我们可以使用profile功能来区分不同环境的配置。 二、 区分Bean对象 首先,我们先看看如何基于Profile来定义一个Bean。 通过@Profile注解可以为一个Bean赋予对应的profile名称,如下: @Component @Profile( "dev") public class DevDatasourceConfig 上面的DevDatasourceConfig被定义为 profile=dev,于是该Bean只会在dev(开发环境)模式下被启用。 如果需要定义为非dev环境,可以使用这样的形式: @Component @Profile( "!dev") public class DevDatasourceConfig XML风格配置 上面的例子也可以使用XML配置文件达到同样的目的,如下: <beans profile= "dev"> < bean id= "devDatasourceConfig" class= "org.baeldung.profiles

企业信息门户webtap产品发布了

无人久伴 提交于 2020-11-30 23:46:01
作品背景 随着企业应用的软件越来越多,并且信息软件基本以B/S为主了,很多时候各种软件的地址,让大家记的头昏脑胀,并且一堆密码要记,而且大部分系统之间无法互通,虽然市面上有各种集成方案,但无法做到简单有效,都是大型软件厂商的PPT解决方案加一堆开发工作和大量的成本支出,最重要的是大部分都是体验极差、毫无美感的东西。 解決方案 基于上述背景,个人利用业余时间在持续完善做一款小作品,或多或少的解决一点问题,虽然目前还没成熟,但是考虑再三,先开源出来,希望有志同道合的人一起完善。 作品说明 1.首页 首页主要功能有 app显示 文件夹分类 应用搜索 登录 登录后快捷新增应用 背景自动每天同步bing搜索引擎的的壁纸 应用和新闻站点链接(未完成) 通过点击应用上的锁 icon即可查看应用的账号和密码,在没有单点登录的功能情况下这个功能非常有用 2.系统登录 点击首页右上角的 sigin 到登录页面 3.应用列表 后台管理 主功能只有新建应用、应用列表、系统设置,极其简约,好不好看只是个人风格,默认登录进来及显示应用列表。 4、新增应用 添加应用除了常规功能还增加了敏感信息输入,敏感信息只能登录后才能查看; 查看密码功能考虑到很多时候连接地址需要密码才能访问; 查看权限目前只实现了登录可见以及自己可见(权限功能还需要继续完善); 5、系统设置 系统设置里可以进行基本信息维护,个人登录信息维护

SpringBoot框架的使用

你离开我真会死。 提交于 2020-11-30 23:27:57
什么是SpringBoot Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目。大多数SpringBoot项目只需要很少的配置文件。 SpringBoot 特性 1 、创建独立的 Spring 项目 2 、内置 Tomcat 和 Jetty 容器 3 、提供一个 starter POMs 来简化 Maven 配置 4 、提供了一系列大型项目中常见的非功能性特性,如安全、指标,健康检测、外部配置等 5 、完全没有代码生成和 xml 配置文件 SpringBoot 优缺点 优点: 1 、快速构建项目。 2 、对主流开发框架的无配置集成。 3 、项目可独立运行,无须外部依赖 Servlet 容器。 4 、提供运行时的应用监控。 5 、极大的提高了开发、部署效率。 6 、与云计算的天然集成。 缺点: 1、 如果你不认同 spring 框架,也许这就是缺点。 SpringBoot 核心功能 1 、独立运行 Spring 项目 Spring boot 可以以 jar 包形式独立运行,运行一个 Spring Boot 项目只需要通过 java -jar xx.jar 来运行。 2 、内嵌 servlet 容器 Spring Boot 可以选择内嵌 Tomcat 、 jetty 或者 Undertow, 这样我们无须以 war 包形式部署项目。 3

SpringBoot2.0+SpringCloud Eureka构建服务治理(Eureka之一)

南笙酒味 提交于 2020-11-30 23:26:42
最近发现SpringCloud构建微服务架构中,网上很多只是用到了SpringBoot2.x之前的版本,显然使用SpringBoot2.x之后构建,网上的资料会给初学者带来很多不方便,而且没有多大的参考价值,所以,这里将使用SpringBoot2.0.0版本,构建SpringCloud Eureka服务治理。 服务治理分了两部分:注册中心和服务提供者 工具环境:IntelliJ IDEA 一、搭建注册中心 1、打开IDEA,File->new->Project->maven... 如上图所示,这一步很重要,因为创建maven项目可以有很多种方式,如果构建简单的项目,可以选择快速maven,但是SpringCloud Eureka肯定必须要选择那个webapp项目,不然的话,结果出来会无法正常访问Spring Eureka页面。创建项目的后续操作这里不详细述说,相信很多玩过maven项目的都会。 2、配置pom文件,导入相关包 <!-- SpringBoot 2.0.0 依赖 --> < parent > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-parent </ artifactId > < version > 2.0.0.RELEASE </

DataGear 2.0.0 发布,数据可视化分析平台

蓝咒 提交于 2020-11-30 13:40:49
DataGear 2.0.0 发布,看板支持新建和编辑JS/CSS,项目开发框架迁移至Spring Boot,具体更新内容如下: 新增:看板编辑页面支持新建和编辑*.html、*.js、*.css等文本类资源文件; 修复:修复看板表单对于留空的输入框未能正确设置图表数据集参数值的BUG; 修复:修复图表数据集参数设置表单打开后,复选框、下拉框未能正确选中上次值的BUG; 修复:修复看板编辑页面的复制资源名到剪切板功能不起作用的BUG; 改进:看板的添加、编辑操作可选在新窗口中打开; 改进:数据集预览功能限定最大返回数据条目数,避免数据量较大时影响页面响应; 改进:移除用户邮箱信息相关功能,系统已无功能需要用户邮箱信息; 改进:图表支持库ECharts版本由4.7.0升级至4.9.0; 其他:项目开发框架由Spring迁移至Spring Boot; 其他:系统配置文件由config/datagear.properties改为config/application.properties; DataGear 是一款数据可视化分析平台,使用Java语言开发,采用浏览器/服务器架构,支持SQL、CSV、Excel、HTTP接口、JSON等多种数据源,主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管理等。 官网地址: http://www.datagear

VUE3快速入门(五)---组件进阶与插槽

生来就可爱ヽ(ⅴ<●) 提交于 2020-11-30 12:08:42
组件进阶与插槽 组件进阶 局部注册和全局注册 局部注册 全局注册 方式一 方式二 方式二好处 Props 静态传值 动态传值 传值类型 数字 字符 布尔值 数组 对象 自定义事件 插槽 信息插槽 代码插槽 使用例子 例一---简单弹窗 例二---数据弹窗 组件进阶 命名注意: MyTest/my-test 小写-小写或者大写加大写 局部注册和全局注册 以这两个组件为例 局部注册 在需要用的页面import引入 在components注册 < template > < div > < test-com > </ test-com > </ div > </ template > < script > import TestCom from "../components/testCom" ; export default { name : "Test1125" , components : { TestCom } , } ; </ script > 全局注册 方式一 在main.js中 import buttonMy from './components/button-my' Vue.component("button-my", buttonMy); 方式二 自己写个js文件 import ButtonMy from "./button-my"; ButtonMy.install =

java面试:如果我是面试官,我会这样吊打你!

折月煮酒 提交于 2020-11-30 12:08:27
前言 每到年后,总会有很多人跳槽。可我发现一个奇怪的现象:那些跳槽的人,总是从一个坑,跳进令一个坑中。毕竟一年过去了,会的还是原来的知识,人的身价就摆在那里,无论怎么折腾,也不会拿到更好的offer。这样的跳槽其实没有意义,也许就有人问,现在都是互联网寒冬了,要怎样才能把握好机会,拿到跟好跟适合自己的offer呢? 技术才是我们程序员的立身之本,在再好的机遇面前我们也要有这个实力去抓住它。 快到年后跳槽季,假如我是面试官,我会这样虐你,在这我整理了一些大型互联网公司面试部分常问的面试题及面试经验总结,希望在你的求职路上有一定的帮助。也希望这份面试题能够祝你一臂之力! 更多面试题加面试答案、学习资料,点此免费获取!! 自我和项目相关 自我介绍 你觉得自己的优点是?你觉得自己有啥缺点? 你有哪些 offer? 你为什么要离开上家公司?你上家公司在xxx,我们公司在xxx,离这么远为什么要选择我们这里? 上家公司的同事和领导是怎么评价你的? 介绍下你的上家公司是做哪块的吧 在上家公司你做了哪些项目? 你在项目中是什么角色? 这个项目的数据量和并发量多大? 这个项目用的什么技术? 项目过程中有遇到什么很印象深刻的问题吗? 是怎么解决的这些问题? 项目有没有还可以继续优化的地方? 该怎么优化?有什么思路没? 叫你设计一个并发xxx,数据存储量xxx 量级的系统,你该如何设计