源码详解系列(一)------cglib动态代理的使用和分析
简介 为什么会有动态代理? 举个例子,当前有一个用户操作类,要求每个方法执行前打印访问日志。 这里可以采用两种方式: 第一种,静态代理。即编译时对方法进行扩展。 第二种,动态代理。即运行时对方法进行扩展。 动态代理被广泛应用于日志记录、性能...
简介 为什么会有动态代理? 举个例子,当前有一个用户操作类,要求每个方法执行前打印访问日志。 这里可以采用两种方式: 第一种,静态代理。即编译时对方法进行扩展。 第二种,动态代理。即运行时对方法进行扩展。 动态代理被广泛应用于日志记录、性能...
简介 Mybatis 是一个持久层框架,它对 JDBC 进行了高级封装,使我们的代码中不会出现任何的 JDBC 代码,另外,它还通过 xml 或注解的方式将 sql 从 DAO/Repository 层中解耦出来,除了这些基本功能外,它还提...
获取 IDEA 激活码、PyCharm 激活码、WebStorm 激活码和 DataGrip 激活码,提供详细破解教程与永久激活方法。支持 IDEA 永久激活与破解,免费获取注册码与激活码,解决 2024/2025 版本激活问题,轻松实现所有 JetBrains 工具的激活。
简介 Apache POI是一套基于 OOXML 标准(Office Open XML)和 OLE2 标准来读写各种格式文件的 Java API,也就是说只要是遵循以上标准的文件,POI 都能够进行读写,而不仅仅只能操作我们熟知的办公程序文...
简介 HikariCP 是用于创建和管理连接,利用“池”的方式复用连接减少资源开销,和其他数据源一样,也具有连接数控制、连接可靠性测试、连接泄露控制、缓存语句等功能,另外,和 druid 一样,HikariCP 也支持监控功能。 Hikar...
Spring 简介 Spring 是一个轻量级的 Java 开发框架,它是为了解决企业应用开发的复杂性而创建的。Spring 的核心是控制反转(IoC)和面向切面编程(AOP)。简单来说,Spring 是一个分层的 Java EE 一站式轻...
前言 随着 Web 2.0 时代的到来,互联网的网络架构已经从传统的 C/S 架构转变为更加方便、快捷的 B/S 架构,B/S 架构大大简化了用户使用网络应用的难度,提高了用户体验。 B/S 架构带来了以下两方面的好处: 客户端使用统一的浏...
这里使用 Maven 项目管理工具构建项目 初始化项目 打开 Intellij IDEA,点击 Create New Project 选择 Maven 构建项目 选择 JDK 版本(此处不阐述 JDK 安装的详细步骤,不会的小伙伴戳 JDK...
使用 Jersey 服务器实现上传,使用 HTTP 请求实现下载 引入依赖 在 pom.xml 中添加 Jersey 相关依赖 <dependency> <groupId>com.sun.jersey</gro...
Spring MVC 概述 Spring MVC 也叫 Spring Web MVC,属于展示层框架,是 Spring 框架的一部分。 MVC 模式作用在于分离应用程序的不同方面(业务逻辑、 UI 逻辑、输入逻辑),而 Spring MVC...
Semaphore通过permits的值来限制线程访问临界资源的总数,属于有限制次数的共享锁,不支持重入。 前提条件 在理解Semaphore时需要具备一些基本的知识: 理解AQS的实现原理 之前有写过一篇《深入浅出AQS源码解析》关于AQ...