Spring Boot 手动将实例添加到IOC

添加实例进IOC

我们可以通过多种途径获取到:GenericApplicationContext 对象,可以使用该对象手动添加Bean进IOC容器,添加的方式有:

1
2
3
4
5
6
registerBean(Class<T>, Object...)
registerBean(String, Class<T>, Object...)
registerBean(Class<T>, BeanDefinitionCustomizer...)
registerBean(String, Class<T>, BeanDefinitionCustomizer...)
registerBean(Class<T>, Supplier<T>, BeanDefinitionCustomizer...)
registerBean(String, Class<T>, Supplier<T>, BeanDefinitionCustomizer...)
阅读更多

MyBatis 动态SQL实现

准备

SQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE DATABASE test
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;

use test;

CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
age INT,
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO users (username, age, email) VALUES ('Alice', 30, 'alice@example.com');
INSERT INTO users (username, age, email) VALUES ('Bob', 25, 'bob@example.com');
INSERT INTO users (username, age, email) VALUES ('Charlie', 35, 'charlie@example.com');
INSERT INTO users (username, age, email) VALUES ('David', 28, 'david@example.com');
INSERT INTO users (username, age, email) VALUES ('Eve', 22, 'eve@example.com');
阅读更多

Spring Boot WebService服务搭建

XJC

xjc 是 Java Architecture for XML Binding (JAXB) 的一部分,它是一个命令行工具,用于将 XML 架构(XML Schema)转换为 Java 类。以下是 xjc 工具的基本用法:

基本命令格式

1
xjc [options] <schema file/URL/dir>
阅读更多

分布式理论

AKF

AKF是指”AKF扩展立方体”(AKF Scaling Cube),这是一个由Arnold Karr和Martin Abbott提出的分布式系统扩展模型。这个模型提供了三个维度来思考如何扩展系统:

  1. X轴 - 水平复制:
    这涉及到简单地复制整个应用或服务。每个复制品都能处理任何请求。这通常通过负载均衡器实现。
  2. Y轴 - 功能解耦:
    这涉及到将不同的功能或服务分离开来。例如,可以将认证服务、支付服务和商品目录服务分开。
  3. Z轴 - 数据分区:
    这涉及到基于某些标准(如用户ID、地理位置等)将数据分成不同的部分。每个服务器负责一部分数据。
阅读更多

Redis 跳表

前言

本文整体脉络如下图所示,笔者会从有序集合的基本使用到跳表的源码分析和实现,让你会对 Redis 的有序集合底层实现的跳表有着更深刻的理解和掌握。

跳表在 Redis 中的运用

这里我们需要先了解一下 Redis 用到跳表的数据结构有序集合的使用,Redis 有个比较常用的数据结构叫**有序集合(sorted set,简称 zset)**,正如其名它是一个可以保证有序且元素唯一的集合,所以它经常用于排行榜等需要进行统计排列的场景。

阅读更多

Redis 内存淘汰策略

Redis是基于内存的key-value数据库,因为系统的内存大小有限,所以我们在使用Redis的时候可以配置Redis能使用的最大的内存大小。

1、通过配置文件配置

通过在Redis安装目录下面的redis.conf配置文件中添加以下配置设置内存大小

1
//设置Redis最大占用内存大小为100Mmaxmemory 100mb复制代码
阅读更多

Java 8 新特性

Oracle 于 2014 发布了 Java8(jdk1.8),诸多原因使它成为目前市场上使用最多的 jdk 版本。虽然发布距今已将近 7 年,但很多程序员对其新特性还是不够了解,尤其是用惯了 Java8 之前版本的老程序员,比如我。

为了不脱离队伍太远,还是有必要对这些新特性做一些总结梳理。它较 jdk.7 有很多变化或者说是优化,比如 interface 里可以有静态方法,并且可以有方法体,这一点就颠覆了之前的认知;java.util.HashMap 数据结构里增加了红黑树;还有众所周知的 Lambda 表达式等等。本文不能把所有的新特性都给大家一一分享,只列出比较常用的新特性给大家做详细讲解。更多相关内容请看官网关于 Java8 的新特性的介绍

阅读更多

Java 9 新特性

Java 9 发布于 2017 年 9 月 21 日 。作为 Java 8 之后 3 年半才发布的新版本,Java 9 带来了很多重大的变化其中最重要的改动是 Java 平台模块系统的引入,其他还有诸如集合、Stream 流……。

你可以在 Archived OpenJDK General-Availability Releases 上下载自己需要的 JDK 版本!官方的新特性说明文档地址:https://openjdk.java.net/projects/jdk/

阅读更多