Spring 源码之获取Bean

Spring源码解读之获取Bean 上一篇文章我们搭建了源码环境,并使用了Spring方法获取了Bean,我们下边来回顾下代码 package com.pv3; import com.pv3.config.AnnotationConfig; import com.pv3.utils.TestUtil; import org.springframework.context.annotation.AnnotationConfigApplicationContext; public class Test { public static void main(String[] args) { //启动Spring AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(AnnotationConfig.class); TestUtil bean = annotationConfigApplicationContext.getBean(TestUtil.class); bean.hello(); } } Spring初始化做了什么? AnnotationConfigApplicationContext annotationConfigApplicationContext = new AnnotationConfigApplicationContext(AnnotationConfig.class); 1、AnnotationConfigA

阅读全文

Spring 源码调试环境

gradle安装教程 本地必须有JAVA环境 [root@localhost ~]# java -version java version "1.8.0_221" Java(TM) SE Runtime Environment (build 1.8.0_221-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode) 执行命令 brew install gradle 搭建Spring源码 下载Spring git clone git@github.com:spring-projects/spring-framework.git 阅读文档 import-into-idea.md 预编译Spring ./gradlew cleanIdea :spring-oxm:compileTestJava 排除模块 spring-aspects 这个不排除Idea报错 启动Spring 配置文件 package com.pv3.config; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @Configuration @ComponentScan("com.pv3") public class AnnotationConfig { } 编写Bean package com.pv3.utils; import org.springframework.stereotype.Component; @Component

阅读全文

自定义Ioc

SpringIoc自定义 第一种方式 ​ 在写代码的时候,我经常纳闷Spring @Autowired到底是如何实现的,我是不是自己实现一个,完后就有这篇文章 编写自定义注解 /** @author sulwan */ @Target({ ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE }) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface Sulwan { boolean required() default true; } @Target: @Target说明了Annotation所修饰的对象范围

阅读全文

Mycat常用规则术语

Mycat常用规则术语 全局表 如果你的业务中有些数据类似于数据字典,比如配置文件的配置,常用业务的配置或数据量不是很大,很少变动的表,这些表往往不是特别大,而且大部分的业务场景都会用到,那么这种表适合于MyCat全局表,无须对数据进行切分。只要在所有的分片上保存一份数据即可,MyC

阅读全文

Mycat实现全局唯一主键

Mycat实现全局唯一主键 登录mysql服务器 mysql -uroot -p 创建数据库 create database mycate; 切换数据库并导入 use mycate; source dbseq.sql dbseq.sql 文件路径/usr/local/mycat/conf/dbseq.sql 编辑schema.xml 其他编写无变化,只需要在需要全局唯一的表添加字段 autoIncrement=“true”/> 编辑server.xml #将此属性修改为1

阅读全文

Mycat数据库读写分离、分表分库综合案例

Mycat数据库读写分离、分表分库综合案例 系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产

阅读全文

Mycat的SQL拦截功能

Mycat的SQL拦截功能 为何需要使用Mycat的SQL拦截功能? 首先,我们来列举一个真实的案例场景:我们在实际的工作中,经常会遇到这样一种场景:业务人员突然发现业务数据库中的数据被莫名其妙的修改了,但又不知道是如何修改的。于是,就来求助DBA,想要来查询一下修改数据的SQL语句

阅读全文

Mycat垂直分库

Mycat垂直分库 在网站建立之初,我们多个客户终端都是直接连接数据库,大体如下 但是随着业务量的增加,我们这个时候数据库压力也随之增加,我们的结构演变成了 随着数据量不断增加,业务复杂度,人员的增加,这个时候我们又需要把业务分开单独数据库 安装Mycat ​ 安装中间件,请查看教程: ​ https://www.pv3.com.cn/post/tool/mycat_install/ 修

阅读全文

CentOS修改主机名和网络信息的方法

1.修改主机名称 [root@centos ~]``# vim /etc/sysconfig/network 打开文件,修改以下内容并保存 NETWORKING=yes #使用网络 HOSTNAME=centos #设置主机名称 [root@centos ~]# hostname centos #立即生效 2.修改网卡 [root@centos ~]``# vim /etc/sysconfig/network-scripts/ifcfg-eth0 打开文件,修改以下内容并保存 DEVICE=eth0 #对应第一张网卡 TYPE=Ethernet ONBOOT=yes #是否启动时运行 NM_CONTROLLED=yes BOOTPROTO=static #使用静态IP,而不是由DHCP分配IP DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" #名称 HWADDR=00:50:56:94:04:3C #必须对应etho是的MAC地址(

阅读全文

Mysql主从复制

Mysql主从复制 本身这个不应该讲解的,但是我准备讲解分库分表,那这个问题就需要讲解了 主从配置需要注意的点 (1)主从服务器操作系统版本和位数一致; (2) Master 和 Slave 数据库的版本要一致; (3) Master 和 Slave 数据库中的数据要一致; (4) Master 开启二进制日志,Master 和 Slave 的 server_id 在局域网内必须唯一; 注意:两台数据库

阅读全文