Spring Boot

springboot整合Shiro

僤鯓⒐⒋嵵緔 提交于 2021-01-13 17:50:20
1.创建一个springboot项目 选中web和thymeleaf 1.1新建index.html <!DOCTYPE html > < html lang = "en" xmlns:th = "http://www.thymeleaf.org" > < head > < meta charset = "UTF-8" > < title > Title </ title > </ head > < body > < h1 > 首页 </ h1 > < p th:text = "${msg}" > </ p > </ body > </ html > 1.2创建一个controller package com.yao.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind. annotation .RequestMapping; @Controller public class MyController { @RequestMapping({ "/" , "/index" }) public String toIndex(Model model){ model

2020年度最常见的Spring Boot面试题【附解析】

无人久伴 提交于 2021-01-13 17:11:40
前言 Spring Boot 是一套快速开发框架,随着微服务架构应用不断普及,Spring Boot 的研发技术的掌握已经成为研发人员必会技能。与此同时,Spring Boot 开源生态建设能力非常强大,提供了很多应用组件,让Spring Boot 有丰富的三方开源软件的使用。 基于上面的情况,Spring Boot 基本上成为了大中型互联网公司面试的必考题。 本篇小编根据大厂的一些面试题库的梳理,将核心的面试提供分享给大家 1、什么是 Spring Boot? Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。 2、Spring Boot 主要有如下优点: 容易上手,提升开发效率,为 Spring 开发提供一个更快、更广泛的入门体验。 开箱即用,远离繁琐的配置。 提供了一系列大型项目通用的非业务性功能,例如:内嵌服务器、安全管理、运行数据监控、运行状况检查和外部化配置等。 没有代码生成,也不需要XML配置。 避免大量的 Maven 导入和各种版本冲突。 3、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的? 启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解

还在使用kill -9 pid结束spring boot项目吗?那你已经落伍了!

百般思念 提交于 2021-01-13 15:51:14
作者:流星007 blog.csdn.net/qq_33220089/article/details/105708331 kill -9 pid ??? kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看(这段话来自菜鸟教程)。 讲的这个复杂,简单点来说就是用来杀死linux中的进程,啥?你问我啥是进程?请自行百度。 我相信很多人都用过 kill -9 pid 这个命令,彻底杀死进程的意思,一般情况我们使用它没有上面问题,但是在我们项目中使用它就有可能存在致命的问题。 kill -9 pid 带来的问题 由于kill -9 属于暴力删除,所以会给程序带来比较严重的后果,那究竟会带来什么后果呢? 举个栗子:转账功能,再给两个账户进行加钱扣钱的时候突然断电了?这个时候会发生什么事情?对于InnoDB存储引擎来说,没有什么损失,因为它支持事务,但是对于MyISAM引擎来说那简直就是灾难,为什么?假如给A账户扣了钱,现在需要将B账户加钱,这个时候停电了,就会造成,A的钱被扣了,但是B没有拿到这笔钱,这在生产环境是绝对不允许的,kill -9 相当于突然断电的效果。 当然了,像转账这种,肯定不是使用MyISAM引擎,但是如今分布式火了起来

Springboot的工具类中使用@Value给静态变量注入值、使用@Autowired注入对象的方法

末鹿安然 提交于 2021-01-13 11:46:47
1. 工具类中 使用@Value给静态变量注入值 @Component public class EmopUtil { //EMOP url private static String url; //接口平台分配给应用的appId private static String appId; //EMOP url @Value("${emop.config.url}") private void setUrl (final String url) { EmopUtil.url = url; } //接口平台分配给应用的appId @Value("${emop.config.appId}") private void setAppId (final String appId) { EmopUtil.appId = appId; } public static doPost () { ...... } } 2. 工具类中 使用@Autowired注入对象的方法:set方法上添加@Autowired注解,类定义上添加@Component注解; @Component public class LogUtil { private static LogMapper logMapper; @Autowired public void setLogMaooer(LogMapper logMapper)

springboot 集成 vertx-kafka-client

白昼怎懂夜的黑 提交于 2021-01-13 11:02:24
为什么尝试做这个集成 vertx是一套封装了netty的异步事件驱动的框架,netty采用的线程模型可以高效处理某些情况下的网络通讯,然而这套框架需要程序员使用函数编程的方式,不是传统的方式。本项目主要是为了构建一个框架。熟悉springboot编程的程序员只需要通过注解或者接口编程的式就可以使用到 vertx-kafka-client。 项目依赖 集成demo采用的依赖如下,主要是spring-boot-starter-web和vertx-kafka-client。 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <version>2.2.2.RELEASE</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.18</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->

QPS、TPS、并发用户数、吞吐量关系

六眼飞鱼酱① 提交于 2021-01-13 00:03:31
来源:https://juejin.cn/post/6844904084504313863 QPS 「QPS」 Queries Per Second 是每秒查询率 ,是 「一台服务器」 每秒能够相应的查询次数,是对一个特定的查询服务器 「在规定时间内」 所处理流量多少的衡量标准, 即每秒的响应请求数,也即是最大吞吐能力。 TPS 「TPS」 Transactions Per Second 也就是事务数/秒。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数, 「QPS和TPS区别」 个人理解如下: TPS即每秒处理事务数,包括 用户请求服务器 服务器自己的内部处理 服务器返回给用户 这三个过程,每秒能够完成N个这三个过程,TPS也就是N; QPS基本类似于TPS,但是不同的是,对于一个页面的一次访问,形成一个TPS;但一次页面请求,可能产生多次对服务器的请求,服务器对这些请求,就可计入“QPS”之中。 「例子」 例如:访问一个页面会请求服务器3次,一次访问,产生一个“T”,产生3个“Q” 例如:一个大胃王一秒能吃10个包子,一个女孩子0.1秒能吃1个包子,那么他们是不是一样的呢?答案是否定的,因为这个女孩子不可能在一秒钟吃下10个包子,她可能要吃很久

Dubbo 版 Swagger 来啦!Dubbo-Api-Docs 发布

余生颓废 提交于 2021-01-12 23:02:12
作者 | 柯然(邪影) 背景 Swagger 是一个规范和完整的前端框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。Swagger 规范也逐渐发展成为了 OpenAPI 规范。 Springfox 是一个集成了 Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的一些描述接口的注解自动生成 Swagger 的描述文件,使 Swagger 能够展示并调用接口。 相信很多人都听说和使用过 Swagger 和 Springfox,这里就不再赘述了。 Dubbo-Admin 中有接口测试功能,但是缺少接口描述的文档,所以该测试功能比较适合接口开发人员用于测试接口。而其他人想要使用该功能就必须先通过接口开发者编写的文档或者其他方式,了解清楚接口信息才能使用该功能测试接口。 Dubbo 这边有没有集合文档展示和测试功能,可以不用写文档就能把接口直接给调用方,类似 Swagger/Springfox 的工具呢? 之前做过一些调研,找到一些类似的工具: 有些是基于 Springfox 做的,直接一个文本域放 JSON,与目前 Admin 中的测试功能大同小异。 有些是直接基于 Swagger 的 Java 版 OpenApI 规范生成工具做的,能把一些基础数据类型的简单参数作为表单项展示。

springboot

ⅰ亾dé卋堺 提交于 2021-01-12 20:36:56
1)使用场景 对于Mysql主从复制实现读写分离来说,可以解决读的扩展性问题。但是写的话,面对庞大的数据量还是集中在Master上,并且Master挂载的slave不可能无限制多,因为slave依赖于Master的能力和负载的限制。因此需要对Master进行扩展来实现海量数据的需要。 2)分表 对于访问极为频繁,数据量又极大的表来说,最直接做的就是减少数据量的总条数,以便减少数据查询所需要的时间,可以对大数据表进行分表。 分表策略:用id来进行分表是最为常见的策略,因为大部分查询都要带上id,又不影响查询又能使得数据均衡的分布在各个表中。假设有一个订单表有1000w条数据,将该表分成16个表,将id%16进行存储,如果id不是数字可以先hash取值。拆分的记录根据取余的值进行存储,App应用根据取余的值进行表的访问。 3)分库 分表能解决数据量过大造成的查询效率低下的问题,但是无法有效提示数据的并发访问能力。将数据库拆分,提高数据库的写入能力就是所谓的分库。 与分表类似,分库策略可以通过对某一个字段如id进行取余操作,来对数据访问进行路由。如id=19,分成3个库,19%3=1,这时候就路由到第一个库。 4)sharding-jdbc 实现分库分表 sharding-jdbc 最先是当当网开源代码,后来被Apache集成。 sharding-jdbc能帮我们实现什么: 1

Dubbo 版 Swagger 来啦!Dubbo-Api-Docs 发布

被刻印的时光 ゝ 提交于 2021-01-12 19:56:13
作者 | 柯然(邪影) Dubbo-Api-Docs 背景 Swagger 是一个规范和完整的前端框架,用于生成,描述,调用和可视化 RESTful 风格的 Web 服务. Swagger 规范也逐渐发展成为了 OpenAPI 规范. Springfox 是一个集成了Swagger,基于 Sring MVC/Spring Webflux 实现的一个 Swagger 描述文件生成框架,通过使用它定义的 一些描述接口的注解自动生成Swagger的描述文件, 使 Swagger 能够展示并调用接口. 相信很多人都听说和使用过Swagger和Springfox, 这里就不再赘述了. Dubbo-Admin中有接口测试功能,但是缺少接口描述的文档,所以该测试功能比较适合接口开发人员用于测试接口.而其他人想要使用该功能就必须 先通过接口开发者编写的文档或者其他方式了解清楚接口信息才能使用该功能测试接口. Dubbo这边有没有集合文档展示和测试功能,能不用写文档就能把接口直接给调用方,类似Swagger/Springfox的工具呢? 之前做过一些调研,找到一些类似的工具: 有些是基于Springfox做的,直接一个文本域放JSON, 与目前Admin中的测试功能大同小异 有些是直接基于Swagger的Java版OpenApi规范生成工具做的,能把一些基础数据类型的简单参数作为表单项展示

堪称神级在阿里内部疯狂传阅的Boot+Cloud开发实战手册

你说的曾经没有我的故事 提交于 2021-01-12 18:00:43
Spring Boot是什么 Spring Boot是由Pivotal团队提供的全新框架, 它的诞生,不是为了取代Spring,而是为了让所有人,更好地使用Spring。 目前,Spring Boot已成为主流的Java框架之一,2016年之后,越来越多的程序员选择了它。Java程序员,已经到了必须掌握Spring Boot的时候。 Spring Cloud是什么 springcloud为开发人员提供了在分布式系统中快速构建一些常见模式的工具(例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、领导选举、分布式会话、集群状态)。分布式系统的协调导致了锅炉板模式,使用springcloud开发人员可以快速地建立实现这些模式的服务和应用程序。它们在任何分布式环境下都能很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心和云计算等托管平台。 所以说SpringBoot和SpringCloud是密切相关的,但是市面上能把这两个知识点整理到一起的资料 少之又少 ,一份完整的微服务开发实战资料也是 有世无价 ,今天小编特意为各位小伙伴找到了这份 《Spring Boot +Spring Cloud微服务开发实战》 需要获取的小伙伴可以直接转发+关注后扫码 Spring Boot +Spring Cloud微服务开发实战 Web基础知识 认识微服务