1.准备工作 创建一个 SpringBoot 项目,并勾选必要的依赖。 因为要使用 JSP 作为前端页面,所以这里需要将打包方式修改为war: <packaging>war</packaging> 添加 JSTL 依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2<…
1.准备工作 创建一个 SpringBoot 项目,并勾选必要的依赖。 因为要使用 JSP 作为前端页面,所以这里需要将打包方式修改为war: <packaging>war</packaging> 添加 JSTL 依赖: <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2<…
需要先进行一些准备工作: 创建一个 Maven Web 项目,具体方式可以参考这篇文章。 将上篇文章项目中的依赖拷贝进当前项目。 将上篇文章项目中的代码拷贝进当项目。 这里提供一个整合后的示例项目 web-demo,内含 SQL。 Web 集成 Shiro web.xml 现在这个示例项目存在一个问题,读取 Shiro 配置并创建 SecurityManager 的代码需要手动调用,虽然我们已经封装成了工具类: public class SubjectUtil { private static Securit…
说明:绿色表示 Java 相关框架和技能,紫色表示通用技能,橙色表示 Java 中间件。 Java基础:Java编程笔记 - 红茶的个人站点 (icexmoon.cn) 数据库:MySQL学习笔记 - 红茶的个人站点 (icexmoon.cn) HTTP:HTTP学习笔记 - 红茶的个人站点 (icexmoon.cn) MyBatis:JavaWeb 学习笔记 1:MyBatis - 红茶的个人站点 (icexmoon.cn) Hibernate:从零开始 Spring Boot 48:JPA & Hibe…
前段时间有个面试,面试官问我 Spring 中的 Bean 是不是线程安全的,当时有点懵逼,主要是觉得线程安全和是不是 Spring 的 Bean 没关系,脑子一下没转过弯,所以回答了一些不着边际的问题。刚下楼溜了一圈,正好回想到这个问题,试着重新回答一下。 要回答什么是线程安全,那就必须聊一下什么是线程不安全。 个人觉得线程不安全要满足以下几个条件: 多线程,这个是肯定的,单线程有个屁的线程安全问题。 多个线程之间有共享资源,换句话说有任务需要它们协同完成。这点是最重要的,多线程编程正是为了利用多核并行的能力提升…
1.简介 Shiro 的架构图: 各种客户端通过 Subject 与 Shiro 的核心组件 SecurityManager 交互,SecurityManager 包含以下几部分: Authenticator,负责身份认证 Authorize,负责授权 Session Manager,管理 Session SessionDAO,对 Session 进行持久化,可以使用 Redis、数据库等 Cache Manager,缓存管理 Realm,领域,负责从数据库查询数据以实现身份认证或授权 Cryptography,密…
1.快速开始 新建一个 SpringBoot 项目,初始依赖只勾选 Lombok 和 MySQL 驱动。 1.1.依赖 MyBatisPlus 的依赖并不存在于 SpringBoot 的初始化器中,需要我们手动添加: <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3…
1.整合 JUnit 这里创建一个不包含任何功能(比如 web)的简单 SpringBoot 应用。 如何使用 Idea 创建一个 SpringBoot 应用可以看上篇文章。 1.1.依赖 用官方的初始化器(Inilizer)创建 SpringBoot 应用会自动包含一个测试相关的 Starter: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boo…
1.快速开始 用 Idea 可以很容易地创建 SpringBoot 应用: 选择合适的 SpringBoot 版本以及需要的依赖: 目前依然在维护的 2.X 版本是 2.7.15,不同的版本对 java 版本的需求不同,比如 3.X,要求最低 Java 17,2.7.15 要求最低 Java 8,关于 Spring Boot 对环境的要求可以查看对应的官方文档。 自动生成框架代码后,我们不需要额外配置,只需要添加一个 Controller 就可以完成最简单的一个 Web 应用示例: @RestController …
1.初识 Sentinel 1.1雪崩问题 1.1.1什么是雪崩问题 微服务中,服务间调用关系错综复杂,一个微服务往往依赖于多个其它微服务。 如图,如果服务提供者I发生了故障,当前的应用的部分业务因为依赖于服务I,因此也会被阻塞。此时,其它不依赖于服务I的业务似乎不受影响。 但是,依赖服务I的业务请求被阻塞,用户不会得到响应,则tomcat的这个线程不会释放,于是越来越多的用户请求到来,越来越多的线程会阻塞: 服务器支持的线程和并发数有限,请求一直阻塞,会导致服务器资源耗尽,从而导致所有其它服务都不可用,那么当前服…
图源:laiketui.com 在上篇文章中我们学习了 es 的基本功能,在本篇文章中会学习 es 的一些高级功能,比如: 聚合查询 自动补全 集群部署 数据聚合 类型 聚合(aggregations)可以让我们极其方便的实现对数据的统计、分析、运算。 聚合常见的有三类: 桶(Bucket)聚合:用来对文档做分组 TermAggregation:按照文档字段值分组,例如按照品牌值分组、按照国家分组 Date Histogram:按照日期阶梯分组,例如一周为一组,或者一月为一组 度量(Metric)聚合:用以计算一些…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED.
本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang