linux下编译和安装python3

Linux下大部分系统默认自带python2.x的版本,最常见的是python2.6或python2.7版本,默认的python被系统很多程序所依赖,比如centos下的yum就是python2写的,所以默认版本不要轻易删除,否则会有一些问题,如果需要使用最新的Python3那么我们可以编译安装源码包到独立目录,这和系统默认环境之间是没有任何影响的,python3和python2两个环境并存即可。

mybatis 3.x 简单增查改删

定义mapper接口

1
2
3
4
5
6
7
8
9
10
11
12
13
public interface EmpMapper {
// 增
void addEmp(Emp emp);
void addEmp2(Emp emp);
void addEmp3(Emp emp);
// 查
Emp getEmpById(Integer id);
// 改
void updateEmp(Emp emp);
// 删
void deleteEmp(Integer id);
int deleteEmp2(Integer id); //成功1,失败0
}

Spring 如何解决循环依赖的问题

Spring 解决循环依赖的思路

循环依赖之所以能解决,核心在于:实例化(Create)初始化(Populate) 是两个分开的阶段。Spring 的做法是:只要 new 出了对象,就先不管属性有没有填好,直接把这个 “半成品” 的引用(或者获取引用的工厂)暴露出去。这样,当 B 需要 A 时,拿到的虽然是空壳,但地址是正确的。为了在不同阶段管理这些 Bean,Spring 准备了三个 Map:

Spring IoC 和 DI 的简单实现

源码跟踪

在这篇文章中,我将着重详细介绍 springframework(这里使用的版本是 6.2.15)的控制反转(IoC)和 依赖注入(DI)的具体实现,并带你真正手搓一个简化的 spring 容器出来。注解形式的 IoC 容器在元数据解析的实现上与 xml 形式有差异,但在容器运行整体流程上二者基本相同,这里仅以 xml 的视角为例进行说明。