后端框架系列
文章平均质量分 82
Spring Spring MVC SpringBoot Mybatis
兀坐晴窗独饮茶
我的个人博客 http://knightzz.cn/
展开
-
SpringBoot常用注解总结
定义在main方法入口类处,用于启动sping boot应用项目@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Documented@Inherited@Configuration@EnableAutoConfiguration@ComponentScan让spring boot根据类路径中的jar包依赖当前项目进行自动配置在src/main/resources的META-INF/spring.factories@EnableAu原创 2024-05-17 10:40:35 · 884 阅读 · 2 评论 -
Elasticsearch7.x - REST 基础操作
对比关系型数据库,创建索引就等同于创建数据库在 Postman 中,向 ES 服务器发 **PUT **请求 :http://127.0.0.1:9200/shopping如果重复添加索引,会返回错误信息在 Postman 中,向 ES 服务器发 **GET **请求 ::::warning这里请求路径中的_cat 表示查看的意思,indices 表示索引,所以整体含义就是查看当前 ES服务器中的所有索引,就好像 MySQL 中的 show tables 的感觉,服务器响应结果如下:::原创 2023-05-15 20:24:20 · 1114 阅读 · 1 评论 -
微服务系列(3)- Ribbon负载均衡
1. Ribbon负载均衡1.1 负载均衡原理SpringCloud底层其实是利用了一个名为Ribbon的组件,来实现负载均衡功能的。1.2 负载均衡源码原理 : LoadBalancerInterceptor 类会对RestTemplate的请求进行拦截. 然后从Eureka根据服务id获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务id。浏览器发出请求后, 先被 LoadBalancerInterceptor 的 intercept 所拦截 // LoadBalanc原创 2022-04-20 14:47:21 · 697 阅读 · 2 评论 -
微服务系列(2)- Eureka微服务注册中心
1. Eureka注册中心1.1 前言提问 : 假如我们的服务提供者user-service部署了多个实例,如图:我们需要思考几个问题 :order-service在发起远程调用的时候,该如何得知user-service实例的ip地址和端口?有多个user-service实例地址,order-service调用时该如何选择?order-service如何得知某个user-service实例是否依然健康,是不是已经宕机?1.2 Eureka的结构和作用这些问题都需要利用原创 2022-04-15 20:59:33 · 486 阅读 · 0 评论 -
微服务系列(1)- 简单远程调用与接口提供者和消费者
1. 过程调用假如已知我们有两个微服务, 此时我们不使用任何注册中心, 完成一个简单的远程过程调用order-service:订单微服务,负责订单相关业务user-service:用户微服务,负责用户相关业务案例需求 :修改order-service中的根据id查询订单业务,要求在查询订单的同时,根据订单中包含的userId查询出用户信息,一起返回2. 代码案例2.1 定义RestTemplateBean在 Order 微服务的 Applicaiton中 添加 RestTempla原创 2022-04-14 19:42:18 · 853 阅读 · 0 评论 -
从零开始学习Maven - dependencyManagement详解
1. dependencyManagement1.1 基本介绍Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyManagement 元素能让所有在子项目中引用一个依赖而不用显式的列出版本号。Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用这个原创 2022-02-13 19:58:49 · 209 阅读 · 0 评论 -
从零开始学习微服务 - Eureka服务注册中心、服务注册、Eureka细节详解、自我保护机制
1. Eureka服务上一篇 : 从零开始学习微服务 -微服务基本概述、微服务案例1.1 Eureka服务注册中心常用的服务注册中心:Eureka、Nacos、Zookeeper、Consul1.1.1 关于注册中心注意:服务注册中心本质上是为了解耦服务提供者和服务消费者。服务消费者 --> 服务提供者服务消费者 --> 服务注册中心 --> 服务提供者对于任何一个微服务,原则上都应存在或者支持多个提供者(比如商品微服务部署多个实例),这是由微服务的分布式属性决原创 2022-02-12 12:42:32 · 679 阅读 · 0 评论 -
从零开始学习微服务 -微服务基本概述、微服务案例
1. SpringCloud概述1.1 互联网应用架构1.1.1 单体应用架构在诞⽣之初,项目的⽤户量、数据量规模都⽐较⼩,项目所有的功能模块都放在一个工程中编码、编译、打包并且部署在一个Tomcat容器中的架构模式就是单体应用架构,这样的架构既简单实 ⽤、便于维护,成本⼜低,成为了那个时代的主流架构⽅式。单体项目优点高效开发:项⽬前期开发节奏快,团队成员少的时候能够快速迭代架构简单:MVC架构,只需要借助IDE开发、调试即可易于测试:只需要通过单元测试或者浏览器完成易原创 2022-02-11 16:48:25 · 2748 阅读 · 0 评论 -
从零开始学习SpringBoot - 整合MyBatis、整合Redis、Thymeleaf模板引擎
1. 整合MyBatis1.1 基本介绍MyBatis 是一款优秀的持久层框架,Spring Boot官方虽然没有对MyBatis进行整合,但是MyBatis团队自行适配了对应的启动器,进一步简化了使用MyBatis进行数据的操作因为Spring Boot框架开发的便利性,所以实现Spring Boot与数据访问层框架(例如MyBatis)的整合非常简单,主要是引入对应的依赖启动器,并进行数据库相关参数设置即可1.2 环境搭建1.2.1 导入数据库表在MySQL中,先创建了一个数据库原创 2022-02-07 16:55:37 · 1488 阅读 · 0 评论 -
从零开始学习SpringBoot - SpringBoot概述、入门案例、全局配置、自定义配置文件、中文乱码
1. SpringBoot概述1.1 约定大于配置约定优于配置(Convention over Configuration),又称按约定编程,是一种软件设计范式。本质上是说,系统、类库或框架应该假定合理的默认值,而非要求提供不必要的配置。比如说模型中有一个名为User的类,那么数据库中对应的表就会默认命名为user。只有在偏离这一个约定的时候,例如 想要将该表命名为person,才需要写有关这个名字的配置。比如平时架构师搭建项目就是限制软件开发随便写代码,制定出一套规范,让开发人员按统一的要求原创 2022-02-05 22:24:09 · 300 阅读 · 0 评论 -
从零开始学习SSM系列目录
1. 文章目录1.1 MyBatis从零开始学习MyBatis - MyBatis基础应用从零开始学习MyBatis - 复杂映射、动态SQL、多表查询、嵌套查询从零开始学习MyBatis - 延迟加载、多级缓存、注解开发1.2 Spring从零开始学习Spring - 配置相关、依赖注入、注解开发从零开始学习Spring - AOP案例、AOP注解、AOP切面、动态代理从零开始学习Spring - JdbcTemplate、Spring事务1.3 SpringMVC从零开始学原创 2022-02-03 19:34:58 · 369 阅读 · 0 评论 -
从零开始学习Spring - SSM整合
1. SSM整合1.1 基本步骤准备数据库和表记录创建web项目编写mybatis在ssm环境中可以单独使用编写spring在ssm环境中可以单独使用spring整合mybatis编写springMVC在ssm环境中可以单独使用spring整合springMVC1.2 环境搭建1.2.1 准备数据库表CREATE TABLE `account` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32)原创 2022-02-03 18:32:32 · 1167 阅读 · 0 评论 -
从零开始学习Spring - Ajax异步交互、RestFul、多文件上传、异常处理、拦截器、控制台乱码
1. Ajax异步交互1.1 基本配置1.1.1 Maven配置Springmvc默认用MappingJackson2HttpMessageConverter对json数据进行转换,需要加入jackson的包;同时使用 <mvc:annotation-driven />maven 配置 <dependencies> <!--springMVC坐标--> <dependency>原创 2022-02-02 22:31:02 · 130 阅读 · 0 评论 -
从零开始学习Spring - SpringMVC组件概述、请求解析、响应解析、静态资源
1. SpringMVC基础应用1.1 SpringMVC概述1.1.1 MVC模式MVC是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的开发思想M(model)模型:处理业务逻辑,封装实体V(view) 视图:展示内容C(controller)控制器:负责调度分发(1.接收请求、2.调用模型、3.转发到视图)三层结构1.1.2 SpringMVC概述SpringMVC 是一种基于 Java 的实现 MVC 设计模式的轻量级 Web 框架,原创 2022-02-02 16:41:10 · 150 阅读 · 0 评论 -
从零开始学习Spring - JdbcTemplate、Spring事务
1. jdbcTemplate1.1 基本概念JdbcTemplate是spring框架中提供的一个模板对象,是对原始繁琐的Jdbc API对象的简单封装核心对象JdbcTemplate jdbcTemplate = new JdbcTemplate(DataSource dataSource);核心方法执行增、删、改语句 int update(); // // 查询多个List<T> query(); // 查询一个 T queryForObject();原创 2022-02-01 17:51:26 · 523 阅读 · 0 评论 -
从零开始学习Spring - AOP案例、AOP注解、AOP切面、动态代理
1. 转账案例1.1 前置准备1.1.1 准备数据库环境CREATE DATABASE `spring_db`;USE `spring_db`;CREATE TABLE `account`( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(32) DEFAULT NULL, `money` double DEFAULT NULL, PRIMARY KEY (`id`));insert原创 2022-01-26 22:23:52 · 127 阅读 · 0 评论 -
从零开始学习Spring - 配置相关、依赖注入、注解开发
1. Spring基础1.1 项目搭建1.1.1 Maven 配置 <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.14</ver原创 2022-01-23 22:39:33 · 116 阅读 · 0 评论 -
从零开始学习MyBatis - 延迟加载、多级缓存、注解开发
1. 延迟加载1.1 基本概念比如 当我们要查询用户的信息以及其关联的订单信息时, 。实际开发过程中很多时候我们并不需要总是在加载用户信息时就一定要加载他的订单信息。此时就是我们所说的延迟加载举例说明 :- 问题 : 在一对多中,当我们有一个用户,它有个100个订单 在查询用户的时候,要不要把关联的订单查出来? 在查询订单的时候,要不要把关联的用户查出来?- 回答 : 在查询用户时,用户下的订单应该是,什么时候用,什么时候查询。 在查询订单时,订单所属的用户信息应该是随着订原创 2022-01-21 17:45:17 · 945 阅读 · 0 评论 -
从零开始学习MyBatis - 复杂映射、动态SQL、多表查询、嵌套查询
1. 复杂映射1.1 结果映射1.1.1 基础概念resultType : 如果实体的属性名与表中字段名一致,将查询结果自动封装到实体类中resutlMap : 如果实体的属性名与表中字段名不一致,可以使用ResutlMap实现手动封装到实体类中1.1.2 代码案例UserMapper.xml<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapp原创 2022-01-19 18:38:21 · 551 阅读 · 0 评论 -
从零开始学习MyBatis - MyBatis基础应用
1. 基本应用1.1 MyBatis 开发基本步骤创建数据库及user表创建maven工程,导入依赖(MySQL驱动、mybatis、junit)编写User实体类编写UserMapper.xml映射配置文件(ORM思想)编写SqlMapConfig.xml核心配置文件 数据库环境配置 映射关系配置的引入(引入映射配置文件的路径)编写测试代码加载核心配置文件获取sqlSessionFactory工厂对象获取sqlSession会话对象执行sql打印结果释放资源1.2 案原创 2022-01-16 20:57:40 · 511 阅读 · 0 评论 -
从零开始学习JavaWeb - 过滤器和监听器详解
1. Filter原理1.1 基本概念Filter本意为”过滤“的含义,是JavaWeb的三大组件之一,三大组件为:Servlet、Filter、Listener。过滤器是向 Web 应用程序的请求和响应处理添加功能的 Web 服务组件。过滤器相当于浏览器与Web资源之间的一道过滤网,在访问资源之前通过一系列的过滤器对请求进行修改、判断以及拦截等,也可以对响应进行修改、判断以及拦截等1.2 工作原理1.3 Filter使用方法实现 Filter 接口package cn.kni原创 2022-01-15 10:56:14 · 160 阅读 · 0 评论 -
从零开始学习JavaWeb - Cookie和Session原理解析
1. Cookie原理解析1.1 基本概念Cookie本意为”饼干“的含义,在这里表示客户端以“名-值”形式进行保存的一种技术。浏览器向服务器发送请求时,服务器将数据以Set-Cookie消息头的方式响应给浏览器然后浏览器会将这些数据以文本文件的方式保存起来。当浏览器再次访问服务器时,会将这些数据以Cookie消息头的方式发送给服务器1.2 常用方法使用javax.servlet.http.Cookie类的构造方法实现Cookie的创建。Cookie(String name,原创 2022-01-11 16:00:24 · 646 阅读 · 0 评论 -
从零开始学习JavaWeb - 初窥Servlet线程安全问题
1. 线程安全的概念服务器在收到请求之后,会启动一个线程来进行相应的请求处理。默认情况下,服务器为每个Servlet只创建一个对象实例。当多个请求访问同一个Servlet时,会有多个线程访问同一个Servlet对象,此时就可能发生线程安全问题。多线程并发逻辑,需要使用synchronized对代码加锁处理,但尽量避免使用。2. 线程安全的案例ThreadServletpackage cn.knightzz.servlet;import javax.servlet.Ser原创 2022-01-09 10:37:24 · 108 阅读 · 0 评论 -
从零开始学习JavaWeb - 重定向与转发原理解析
文章目录1. 重定向原理解析1.1 基本概念1.2 流程图1.3 代码示例1.4 重定向的特点2. 转发的概念和原理2.1 转发器的概念2.2 转发器常用方法2.4 代码示例1. 重定向原理解析1.1 基本概念首先客户浏览器发送http请求,当web服务器接受后发送302状态码响应及对应新的location给客户浏览器,客户浏览器发现是302响应,则自动再发送一个新的http请求,请求url是新的location地址,服务器根据此请求寻找资源并发送给客户。1.2 流程图通过浏原创 2022-01-06 16:55:42 · 891 阅读 · 0 评论 -
从零开始学习JavaWeb - Servlet基础、生命周期、注解相关
1. Servlet 核心技术Servlet-Api 的 maven 配置 <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>4.0.0</version> <scope>compile</scope&原创 2022-01-05 18:30:41 · 409 阅读 · 0 评论 -
IDEA控制台输出乱码解决办法(汇总版)
### 解决办法:这里全部设置为 UTF-8, 同时 在下图的位置加上 -Dfile.encoding=UTF-8如果不起作用 可以更换为 -Dfile.encoding=GB2313打开上图的红框部分的文件, 添加 -Dfile.encoding=UTF-8, 如果都不行 其实还有别的办法,把上图全部改为 GBK ,但是注意 可能会导致项目乱码, 项目编码一般都配置为 UTF-8...原创 2022-01-05 15:04:07 · 2986 阅读 · 4 评论 -
从零开始学习JavaWeb - IDEA+Maven搭建Tomact项目
1.前言本章节主要介绍 如何使用Maven搭建JavaWeb项目使用的是本地的Tomact服务器如果使用Maven加载Tomact插件的话参考 : IDEA + Maven 搭建JavaWeb项目2.项目创建如上图所示 : 选择指定的maven模板创建项目注意: 上图是创建成功后的项目目录, 如果你的不一样,很可能的创建错了, 重新创建选择正确的maven模板即可创建成功以后找到菜单栏 Run=>Edit Configuration3.配置Tomact服务器这里注意红框部分的原创 2021-12-30 15:25:28 · 195 阅读 · 0 评论 -
《Spring学习指南》- SpringIOC基于XML配置的Bean
1. 创建Beanpackage cn.knightzz.xml.bean;/** * @author 王天赐 * @title: UserBean * @projectName SpringIOC * @description: * @date 2021/10/9 21:40 */public class UserBean { public void test() { System.out.println("Hello Spring!"); }}原创 2021-10-14 21:42:21 · 95 阅读 · 0 评论