Spring
火龙果儿
不负年少轻狂时光
展开
-
easySpring | 手写SpringIOC、AOP
easySpring 在学到Java的Spring容器概念这里,我参考网上的博客和自己的理解实现了一个简易的Spring容器也就是这个项目。该项目分为up和down两部分。 up模块只实现了最简单的IOC和AOP功能,两者并没有联系起来。 后来在down中实现了更复杂的IOC、AOP功能,并使两者能够很好地进行协作。 1. 简单的IOC和AOP的实现 1.1 简单的IOC容器实现 先从简单的 IO...原创 2020-03-08 16:56:21 · 362 阅读 · 1 评论 -
Spring IOC AOP的手写实现(二)
IOC的实现 1.1 BeanFactory的生命流程 BeanFactory加载Bean配置文件,将读到的Bean配置封装成BeanDefinition对象 将封装好的BeanDefinition对象注册到BeanDefinition容器中 注册BeanPostProcessor相关实现类到BeanPostProcessor容器中 BeanFactory进入就绪状态 外部调用BeanFacto...原创 2019-11-25 20:33:41 · 155 阅读 · 0 评论 -
Spring IOC AOP的简单实现
最简单的IOC容器只需要4步即可实现 加载xml配置文件,遍历其中的标签 获取标签中的id和class属性,加载class属性对应的类,并创建bean 遍历标签中的标签,获取属性值,并将属性值填充到bean中 将bean注册到bean容器中 SimpleIOC: import org.w3c.dom.Document; import org.w3c.dom.Element; import or...原创 2019-11-25 18:41:33 · 142 阅读 · 0 评论 -
MyBatis学习笔记(四)MyBatis中的延迟加载、缓存、注解开发
一、延迟加载 延时加载(懒加载):当一个用户与100个账户关联,如果查用户的时候把账户也查出来了,会造成巨大的内存开销。应该是什么时候使用,什么时候查询账户信息。 立即加载:在查询账户时,账户所属的用户信息应该是随它一起查询出来的。 使用情况: 一对多、多对多:延迟加载 一对一、多对一:立即加载 在全局配置中打开延迟加载的开关: <configuration> <!-...原创 2019-11-06 18:35:59 · 139 阅读 · 0 评论 -
MyBatis学习笔记(三)MyBatis连接池以及事务控制、基于XML配置的动态SQL语句、多表操作
一、连接池 连接池就是用于存储连接的一个容器 容器就是一个集合对象,该集合必须是线程安全的,不能两个线程拿到统一的连接。还必须实现队列特性:先进先出。 mybatis中的连接池 mybatis提供了三种方式的配置: SqlMapConfig.xml中的标签中的type属性的取值: POOLED javax.sql.DataSource规范中的连接池,有针对规范的实现 UNPOOLED ...原创 2019-11-06 18:34:57 · 189 阅读 · 0 评论 -
MyBatis学习笔记(二)MybatisCRUD
接口类代码 public interface IUserDao { // 查询所有 List<User> findAll(); //保存用户 void saveUser(User user); //更新用户 void updataUser(User user); //删除用户 void deleteUser(in...原创 2019-11-06 18:30:28 · 106 阅读 · 0 评论 -
MyBatis学习笔记(一)MyBatis介绍、入门案例以及自定义实现MyBatis
一、MyBatis介绍、入门案例以及自定义实现MyBatis 1、什么是框架? 它是我们软件开发中的一套解决方案,不同的框架解决的是不同的问题。 使用框架的好处: 框架封装了很多的细节,使开发者可以使用极简的方式实现功能。大大提高开发效率。 2、三层架构 表现层:是用于展示数据的 业务层:是处理业务需求(Spring不属于任何一个层) 持久层:是和数据库交互的 3、持久层技术解决方案 JDB...原创 2019-11-06 18:27:39 · 166 阅读 · 0 评论 -
SpringAOP(一)——源码学习原理和应用
AOP目的:增强一个类-》方法 编写测试程序,获取bean 小概念: AOP:目标 SpringAop、AspectJ:手段(两者是竞争对手) 一、aop应用 1、Enabling @AspectJ Support使项目支持aspectj风格 2、xml/@EnableAspectAutoProxy 3、编写一个切面 @Component @Aspect //切面就是切点、连接点和通知所在的...原创 2019-10-29 18:43:50 · 94 阅读 · 0 评论