Java
未读
EasyPOI 使用
这是一篇关于 Easypoi 的文章,介绍了该框架如何简化 Java 中的 Excel 和 Word 文件处理。Easypoi 提供了简洁易用的 API,支持读取、写入、操作 Excel 和 Word 文件,且具有高性能,能够处理大型文档。它支持多种文件格式,如 Excel 2003、2007+ 和 Word 2003。文章还介绍了基于注解的导入导出功能,简化了数据映射和文件生成过程,并提供了非实体和模板导出功能。通过模板,用户可以自定义样式、合并单元格和动态数据绑定,实现灵活和高效的导出功能。此外,Easypoi 还支持复杂数据结构,简化了开发流程,提高了导出性能。
前端
未读
CSS基础结构、语法
这是一篇 CSS基础 的文章,介绍了CSS的结构和语法。CSS由选择器和声明块组成,选择器用于指定要应用样式的HTML元素,声明块包含一组属性和值来定义样式。文章介绍了常见的选择器类型,如标签选择器、类选择器、ID选择器和属性选择器,并解释了声明块的构成和属性值的设置方式。CSS的属性值包括颜色、长度、百分比和字体等,且支持嵌套和继承功能。通过这些基本概念,开发者可以为网页元素设置样式,创建自定义的布局和外观效果。
前端
未读
HTML结构、语法、标签
这是一篇 HTML结构与语法 的文章,介绍了HTML文档的基本组成部分,包括<!DOCTYPE>声明、<html>根元素、<head>元数据部分和<body>主体内容。HTML语法包括标签、属性和内容,标签用尖括号包围,通常成对出现,属性提供额外信息,内容位于标签之间。文章还介绍了常见的HTML标签操作,如标题标签<h1>、段落标签<p>、链接标签<a>、图像标签<img>、列表标签<ul>和<ol>、表格标签<table>、以及表单标签<form>等,展示了如何使用这些标签构建网页内容。
Java
未读
Stream Api
这是一篇 Java 8 Stream API概述 的文章,介绍了Stream API的基本概念、特征和操作。Stream是一种用于处理数据源元素的队列,支持聚合操作,可以通过中间操作(如filter、map、distinct等)和终止操作(如findFirst、count、reduce等)来处理数据。与传统的集合操作不同,Stream支持管道式操作(Pipelining)和内部迭代(Internal Iteration),并且可以通过串行流和并行流进行优化。文章详细介绍了Stream的生成、常用的中间和终止操作,以及如何利用Stream API进行高效的数据处理。
Java
未读
Mybatis 工作原理
这是一篇 MyBatis概述 的文章,介绍了MyBatis框架的基本概念、工作原理和主要成员。MyBatis是一个用于简化数据库操作的持久层框架,它通过自定义SQL、存储过程和高级映射,帮助程序员专注于SQL编写而无需关注底层JDBC操作。文章详细讲解了MyBatis的核心组件,如Configuration、SqlSession、Executor、StatementHandler等,以及它们在数据库操作中的作用。工作流程上,MyBatis通过配置文件生成SqlSessionFactory,然后通过SqlSession执行SQL语句,进行参数处理和结果集映射,最终返回操作结果。
Java
未读
Mybatis XML标签
这是一篇 MyBatis中XML标签 的文章,介绍了MyBatis中常用的XML标签及其作用。文章首先介绍了<mapper>标签作为MyBatis XML文件的根标签,用于定义命名空间和包含SQL语句。然后,分别讲解了<insert>、<update>、<delete>、<select>等标签的作用,用于执行数据库的增、删、改、查操作。此外,<resultMap>用于映射数据库字段与对象属性,<sql>用于定义可重用的SQL片段,<include>可以引入SQL片段,<if>、<choose>、<when>、<otherwise>用于动态生成SQL,<trim>、<where>、<set>用于处理SQL片段的动态部分。<foreach>支持集合迭代,<cache>和<cache-ref>用于配置缓存,<selectKey>用于获取生成的主键值。
Java
未读
SpringBoot集成Mybatis
这是一篇 Spring Boot与MyBatis集成配置 的文章,介绍了如何在Spring Boot项目中集成MyBatis进行数据库操作。文章首先讲解了在pom.xml文件中添加必要的依赖,包括Spring Boot Starter、MyBatis Starter和MySQL Connector。接着,说明了如何在application.properties中配置数据库连接信息。然后,介绍了如何通过MyMetaObjectHandler实现MyBatis的自动填充功能,处理插入和更新操作的时间字段。接下来,配置了MyBatis的SqlSessionFactory和Mapper接口扫描,创建了Mapper接口用于数据库操作方法的定义。最后,展示了如何在实体类中通过@TableField注解配置自动填充字段,完成整个配置过程以便在Spring Boot项目中使用MyBatis进行数据库操作。
Java
未读
Mybatis 执行器
这是一篇 MyBatis Executor执行器 的文章,介绍了MyBatis中三种基本的Executor执行器。SimpleExecutor每次执行SQL时都会创建并关闭Statement对象;ReuseExecutor通过SQL作为key复用Statement对象,避免每次都创建新的Statement;BatchExecutor则将多个SQL语句批量执行,适用于JDBC批处理操作。文章还提到了一种特殊的Executor——CachingExecutor,它为其他Executor增加了二级缓存功能,通过查询缓存来优化性能,常与Redis等第三方存储结合使用。文章最后指出,Executor的选择应根据SqlSession生命周期和具体的应用场景来决定,特别是ReuseExecutor和BatchExecutor需要手动管理Statement对象。
Java
未读
Spring MVC拦截器
这是一篇关于Spring MVC拦截器的文章,介绍了拦截器的作用、与过滤器的区别、以及如何实现和注册自定义拦截器。Spring MVC的拦截器用于拦截请求并进行预处理和后处理,拦截器通过实现HandlerInterceptor接口来定义三个方法:preHandle(在处理器方法执行前调用)、postHandle(在处理器方法执行后调用)、和afterCompletion(在请求完成后调用)。与过滤器不同,拦截器基于Spring的AOP思想,能够访问IOC容器中的Bean,适用于控制器方法,不能用于静态资源。拦截器的执行顺序与注册顺序一致,可以通过配置类将自定义拦截器注册到Spring MVC中,指定拦截路径和排除路径。
Java
未读
Mybatis 缓存机制
这是一篇关于MyBatis一级缓存和二级缓存的文章,介绍了两者的工作原理、生命周期和配置方式。MyBatis默认开启一级缓存,一级缓存只在同一个SqlSession对象内有效,查询结果会被缓存并在同一会话内重复使用,直到会话结束或缓存被清空。一级缓存的清空操作包括SqlSession的close()、clearCache()方法调用以及执行update、delete、insert操作。二级缓存是跨SqlSession的应用级缓存,默认不开启,需要在映射文件中配置<cache/>来启用。二级缓存使用LRU算法来回收缓存,存储的数据可以是POJO对象,且要求实现Serializable接口,支持缓存的数据包括查询结果,而insert、update、delete操作会刷新缓存。
Java
未读
Spring MVC过滤器
这是一篇关于Java过滤器(Filter)的文章,介绍了过滤器的原理、作用以及在Spring Boot中的使用方法。过滤器是Java Servlet规范的一部分,允许开发者在请求到达目标资源之前和响应离开应用程序之前对其进行处理。它可以用于身份验证、请求参数处理、日志记录、性能优化和防止恶意攻击等场景。过滤器的执行顺序包括过滤前、拦截前、AOP、Controller、AOP、拦截后和过滤后。文章还通过一个Spring Boot实战案例,演示了如何创建和配置自定义过滤器,使用@WebFilter注解配置过滤器,并通过@ServletComponentScan启用Servlet组件的自动扫描。
Java
未读
Spring 生命周期
这是一篇关于Spring Bean生命周期的文章,概述了Bean的生命周期流程,并详细介绍了各个扩展点的作用。Spring Bean的生命周期主要包括四个阶段:实例化、属性赋值、初始化和销毁。实例化阶段创建Bean对象,属性赋值阶段为Bean设置属性和依赖,初始化阶段包括多个步骤,其中涉及到Aware接口依赖注入、BeanPostProcessor的前后处理、以及InitializingBean和init-method的初始化操作。销毁阶段则包括注册销毁回调接口,通过DisposableBean和destroy-method进行Bean的销毁。通过这四个大阶段以及具体的初始化和销毁操作,帮助理解Spring Bean的生命周期。
Java
未读
Spring MVC
这是一篇关于SpringMVC框架作用的文章,概述了框架的核心组件和运行流程。SpringMVC框架是基于请求驱动设计的,核心类是DispatcherServlet,它负责接收请求并分发到对应的控制器。主要组件包括DispatcherServlet(接收请求并分发)、HandlerMapping(映射请求与处理方法)、Controller(处理请求并返回响应)、ModelAndView(封装数据与视图信息)、ViewResolver(解析视图组件)。运行流程中,客户端请求先到DispatcherServlet,经过HandlerMapping解析到对应的Controller,由HandlerAdapter处理请求逻辑,返回ModelAndView对象,最终通过ViewResolver找到具体视图,并将结果返回给客户端。