
框架
框架
不想当程序汪的第N天
我没秃,我还不够强
展开
-
SpringMVC执行流程
SpringMVC请求流程SpringMVC中处理请求最为重要的组件就是:DispatcherServlet,在处理用户请求时,SpringMVC底层的请求流程如下图:用户端发起请求到后台服务器,请求被前端控制器(DispatcherServlet)拦截前端控制器拦截到请求后,将请求信息交给处理器映射器(HandlerMapping)查找Handler处理器映射器向前端控制...原创 2019-08-01 21:20:27 · 178 阅读 · 0 评论 -
认识SpringMVC
Spring Web MVC是基于Servlet API构建的原始Web框架,从一开始就包含在Spring Framework中。正式名称“Spring Web MVC”来自其源模块(spring-webmvc)的名称,但它通常被称为“Spring MVC”。与Spring Web MVC并行,Spring Framework 5.0引入了一个反应堆栈Web框架,其名称“Spring WebF...原创 2019-06-16 22:01:58 · 229 阅读 · 1 评论 -
SpringMVC入门案例
web.xml配置<?xml version="1.0" encoding="UTF-8"?><web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ...原创 2019-07-31 19:31:39 · 112 阅读 · 0 评论 -
SpringMVC拦截器
拦截器是 SpringMVC 中一个强大的控件,它可以在进入处理器之前做一些操作,或者在处理器完成后进行操作,甚至是在渲染视图后进行操作。我们可以自己定义一个拦截器,Spring 要求处理器的拦截器都需要实现 org.springframework.web.servlet.HandlerInterceptor 接口,我们来看看该接口的源码:public interface HandlerInt...原创 2019-08-08 10:06:44 · 137 阅读 · 0 评论 -
SpringMVC文件上传
SpringMVC 为上传文件提供了良好的支持,SpringMVC 通过 MultipartResolver (Multipart 解析器) 处理的,它是一个接口,有两个实现类:CommonsMultipartResolver:依赖于 Apache 下的 jakarta Common FileUpload 项目解析 Multipart 请求,可以在 Spring 的各个版本中使用,只是它要依...原创 2019-08-12 11:17:29 · 105 阅读 · 1 评论 -
看完,SpringBoot自动配置你就懂了!
SpringBoot 是个很强大的框架,免去很多繁杂配置,它是怎么实现这些功能的,来看看 SpringBoot 的运行原理。首先,SpringBoot 启动类是整个项目的启动入口,@SpringBootApplication 注解是整个启动类的核心,可以看一下 @SpringBootApplication 的部分源码。可以看出 @SpringBootApplication 注解是一个组合注解...原创 2019-12-21 19:54:17 · 354 阅读 · 1 评论 -
SpringBoot整合MyBatis
SpringBoot 提供了整合 MyBatis 的功能,通过简单的配置就能完成。pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...原创 2019-08-24 21:52:08 · 121 阅读 · 1 评论 -
SpringBoot整合Spring Data Redis
RedisRedis 遵守BSD协议,是一个高性能的key-value键值对的非关系型数据库。Redis运行在内存中,所有的操作都是原子性的,支持事务,读写速度每秒可执行上万次。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的...原创 2019-09-03 16:43:13 · 129 阅读 · 0 评论 -
SpringBoot使用jta+atomikos解决多数据源分布式事务
多数据源的两种情况SpringBoot 中多数据源大致可以分为两种:垂直分割模式类似水平分割模式垂直分割模式,将整个数据库根据模块拆分成多个数据库,每个数据库是单独一个数据源,这样就涉及到多数据源的分布式事务问题。类似水平分割模式,不同区域都拥有数据库,每个区域的数据库数据相同,通过不同区域的账户选择登录哪个数据库。...原创 2019-12-18 11:37:40 · 2061 阅读 · 2 评论 -
SpringBoot使用Log4j收集日志信息
Pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apach...原创 2019-12-18 12:55:20 · 307 阅读 · 0 评论 -
SpringBoot整合Thymeleaf模板引擎
首先要了解一下什么是 Thymeleaf !Thymeleaf 是一个跟 Velocity、FreeMarker 类似的模板引擎,它可以完全替代 JSP 。相较与其他的模板引擎,它有如下三个极吸引人的特点Thymeleaf 在有网络和无网络的环境下皆可运行,即它可以让美工在浏览器查看页面的静态效果,也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型,然后在 ht...原创 2019-08-17 13:38:38 · 152 阅读 · 1 评论 -
SpringBoot基础案例
SpringBoot 随着动态语言的流行,为解决 java 开发繁重的配置,低下的开发效率,复杂的部署以及第三方技术集成难度大而诞生。它使用习惯优于配置的理念能够让项目快速的运行,相较于传统的ssm、ssh项目而言,少了许多麻烦的配置文件。SpringBoot 可以以jar包的方式独立运行,并且在其内部内嵌了 tomcat、jetty 等容器,无须以 war 包形式部署项目。提供了一系列的 s...原创 2019-08-14 10:05:52 · 125 阅读 · 1 评论 -
SpringBoot内置Ehcache缓存,你知道吗?
平时使用的缓存一般都是 redis、mongoDB 等等,SpringBoot 内置集成了 EhCache,EhCache是一个比较成熟的Java缓存框架,最早从hibernate发展而来, 是进程中的缓存系统,它提供了用内存,磁盘文件存储,以及分布式存储方式等多种灵活的cache管理方案,快速简单。直接上代码!pom.xml<?xml version="1.0" encoding="...原创 2019-12-19 20:10:30 · 365 阅读 · 0 评论 -
SpringBoot热部署,提高你的开发效率
目前的Springboot,当发生了任何修改之后,必须关闭后再启动Application类才能够生效,显得略微麻烦。 Springboot提供了热部署的方式,当发现任何类发生了改变,马上通过JVM类加载的方式,加载最新的类到虚拟机中。这样就能够实现项目的热部署运行,修改少量的代码不需要重启项目就能看到效果pom.xml<?xml version="1.0" encoding="UTF...原创 2019-08-22 20:50:56 · 257 阅读 · 1 评论 -
MyBatis核心组件的生命周期
简述MyBatis的四大核心组件已经基本掌握,本篇文章就来谈谈四大核心组件的生命周期。首先,什么是生命周期?所谓的生命周期就是每一个对象存活的时间,例如一个对象一次用完后就要关闭,被Java虚拟机(JVM)销毁,以免继续占用资源,所以我们可以根据每个组件的作用来确定其生命周期。SqlSessionFactoryBuilderSqlSessionFactoryBuilder的作用在于创建Sq...原创 2019-05-14 10:25:37 · 595 阅读 · 0 评论 -
MyBatis级联
简述级联是一个数据库实体的概念,级联不是必须的,级联的好处是获取关联数据十分方便,但是级联过多会增加系统的复杂度,同时降低系统的性能,所以当级联的层级超过3层时,就不要考虑使用级联,这样会导致多个对象的关联,导致系统耦合度增加,难以维护。MyBatis的级联分为3种:鉴别器(discriminator):它是一个根据某些条件决定采用具体实现类级联的方案。一对一(association):...原创 2019-05-25 12:52:31 · 249 阅读 · 0 评论 -
MyBatis一级缓存和二级缓存
简述mybatis提供了缓存机制减轻数据库压力,提高数据库性能。mybatis的缓存分为两级:一级缓存、二级缓存。一级缓存一级缓存是在SqlSession上的缓存,默认情况下,MyBatis系统会开启一级缓存,也就是对于SqlSession层面的缓存,这个缓存不需要POJO对象可序列化。测试一级缓存:@Testpublic void testFindUser() throws IO...原创 2019-05-25 13:36:11 · 187 阅读 · 0 评论 -
MyBatis核心组件之SQL Mapper
简述映射器(SQL Mapper)是MyBatis中最重要、最复杂的组件,它是由一个接口和对应的XML文件组成,它可以配置以下内容:描述映射规则提供SQL语句,并可以配置SQL参数类型、返回类型、缓存刷新等信息配置缓存提供动态SQL映射器的主要作用就是将SQL查询到的结果映射成一个POJO(Java原生对象),或者将POJO的数据插入到数据库中,并定义一些关于缓存等的重要内容。下...原创 2019-05-14 10:10:01 · 663 阅读 · 0 评论 -
MyBatis映射器
简述映射器是MyBatis最复杂且最重要的组件,它由一个接口加上XML文件(或者注解)组成。在映射器中可以配置参数、各类SQL语句、存储过程、缓存、级联等复杂内容,并且通过建议的映射规则映射到指定的POJO或者其他对象上,映射器能有效消除JDBC底层的代码。元素名称描述备注select查询语句,最常用、最复杂的元素之一可以自定义参数,返回结果集等insert插...原创 2019-05-25 12:23:43 · 263 阅读 · 0 评论 -
MyBatis配置
简述<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd"><configuration><!-- 配置...原创 2019-05-17 10:57:24 · 144 阅读 · 0 评论 -
MyBatis核心组件之SqlSessionFactory
MyBatis的核心组件MyBatis的核心组件分为4个部分:SqlSessionFactoryBuilder(构造器):它会根据配置或者代码来生成SqlSessionFactory,采用的是分布构建的Builder模式。SqlSessionFactory(工厂接口):依靠它来生成SqlSession,使用的是工厂模式。SqlSession(会话):一个既可以发送SQL执行返回结果,也可...原创 2019-05-13 10:24:25 · 1139 阅读 · 0 评论 -
MyBatis运行原理
原理原创 2019-05-25 17:53:57 · 323 阅读 · 0 评论 -
MyBatis核心组件之SqlSession
SqlSession在MyBatis中,SqlSession是其和新街口。在MyBatis中有两个实现类,DefaultSqlSession和SqlSessionManager。DefaultSqlSession是单线程使用的,而SqlSessionManager是在多线程环境下使用的。SqlSession的作用类似于一个JDBC中的Connection对象,代表着一个连接资源的启用。具体而言...原创 2019-05-13 11:38:29 · 882 阅读 · 0 评论 -
认识MyBatis
简述MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data...原创 2019-05-13 09:37:57 · 264 阅读 · 0 评论 -
Spring事务
事务是指逻辑上的一组操作,这组操作要么全部成功,要么就一同失败。事务的四大特性:原子性:事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都失败;隔离性:当多个用户并发访问数据库时,数据库为每一个用户开启的事务,不被其他事务的操作所干扰,多个并发事务之间要相互隔离;一致性:事务操作前后数据必须处于一致状态;持久性:一个事务一旦被提交了,那么对数据库中的数据的改变就是永久性的,...原创 2019-06-15 15:13:46 · 117 阅读 · 0 评论 -
Spring 装配 Bean
简述如何将自己开发的 Bean 装配到 Spring IOC 容器中,大部分情况下我们可以使用 ApplicationContext 的具体实现类,因为对应的 Spring IOC 容器功能强大,在 Spring 当中提供了3中方式进行配置:XML配置Java的接口和类中实现配置隐式Bean的发现机制和自动装配原则XML配置Bean<bean id="source" clas...原创 2019-05-29 21:59:17 · 171 阅读 · 0 评论 -
Spring IOC
简述传统编码创建对象时,我们总是通过 new 方法主动创建对象,但是在现实中,一个复杂的系统面对着成千上百的对象,如果每一个对象都通过手动创建、维护,就会十分的复杂。更多时候,我们希望通过简单方法获得想要的对象,这就是被动创建对象。被动创建对象,不需要程序员手动一个个 new 出对象,只需要给出想要对象的描述就可以得到对象。在Spring框架中,这样的效果可以通过 IOC 实现。Sprin...原创 2019-05-27 17:35:24 · 140 阅读 · 0 评论 -
认识Spring
什么是SpringSpring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE...原创 2019-05-26 10:39:18 · 257 阅读 · 0 评论 -
Spring JdbcTemplate
简述JdbcTemplate是Spring框架自带的对JDBC操作的封装,目的是提供统一的模板方法使对数据库的操作更加方便、友好,效率也不错。但是功能还是不够强大(比如不支持级联属性),在实际应用中还需要和hibernate、mybaties等框架混合使用。传统JDBC弊端传统的 JDBC 即使是执行一条简单的 SQL 过程都不简单,先是打开数据库连接执行 SQL,组装结果,最后关闭资源,其...原创 2019-06-03 22:27:32 · 199 阅读 · 0 评论 -
Spring 整合 MyBatis
Spring配置文件spring-config-druid.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schem...原创 2019-06-04 11:06:05 · 107 阅读 · 0 评论 -
Spring 依赖注入(DI)
简述在实际环境中实现 IOC 容器的方式主要分为两大类,一类是依赖查找,依赖查找是通过资源定位,把对应的资源查找回来;另一类是依赖注入,Spring 主要使用的是依赖注入。一般,依赖注入可以分为三种方式:构造器注入setter 注入接口注入构造器注入和 setter 注入是主要的方式,而接口注入是从别的地方注入的方式,例如web工程中配置的数据源是通过服务器配置的,可以通过 JND...原创 2019-05-29 21:17:30 · 186 阅读 · 0 评论 -
Spring AOP
简述AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开发者定义纵向的关系,但并不适合定义横向的关系,例如日志功能。日志代码往往横向地散布在所有对象层次中,而与它对应的...原创 2019-06-02 20:11:35 · 163 阅读 · 0 评论