Spring
文章平均质量分 69
Spring
晓强-
选择和努力一样重要。
展开
-
Spring源码浅析——spring容器的启动流程与spring IOC的实现
目录简介SSM开发模式中容器启动流程调用流程图流程解析ContextLoaderListenerContextLoaderSpring IOC实现上述步骤二:obtainFreshBeanFactory()refreshBeanFactory()刷新BeanFactory查看上述步骤四:进行XML文件读取及解析loadBeanDefinitions(beanDefinitionReader)简介Spring是一个轻量级的AOP和IOC框架。主要用来简化Java应用程序的开发,降低组件和组件之间的耦合性原创 2021-08-01 11:34:58 · 357 阅读 · 0 评论 -
使用IDEA构建Spring源码spring-framework
目录环境安装gradle下载 spring-framework修改 spring-framework 项目中的配置文件预编译 spring-oxm导入IDEA感谢线上各种Spring源码构建的贡献者环境windows 10jdk 1.8idea 2019.3.3gradle 5.6.4springframework 5.1.x分支安装gradle下载bin版本即可,地址 https://gradle.org/releases/解压到 D:\gradle\gradle-5.6转载 2021-07-14 15:22:30 · 782 阅读 · 0 评论 -
Spring如何解决循环依赖
目录循环依赖问题BeanCurrentlyInCreationExcepiton解决方法循环依赖问题BeanCurrentlyInCreationExcepitonSpring容器将每个正在创建的bean标识放在一个“当前创建bean池”中,bean标识符在创建过程中一直保持在这个池中,如果在创建bean过程中,发现自己已经在“当前创建bean池”时,将抛出BeanCurrentlyInCreationExcepiton。而对于创建完毕的bean将从“当前创建池”中清除。解决方法Spring容原创 2021-07-14 14:08:05 · 77 阅读 · 0 评论 -
【实战】SpringBoot+JSP实现权限管理
目录数据库表结构t_permissiont_role_permissiont_usert_user_rolet_role实现权限管理项目环境配置和搭建项目结构控制层controllerBaseControllerDispatcherControllerPermissionControllerRoleControllerUserController业务层PermissionServiceRoleServiceUserService业务实现层PermissionServiceImplRoleServiceImp原创 2021-01-15 15:38:03 · 954 阅读 · 0 评论 -
一次保存增加3条数据,dubbo中xml配置与注解的区别
目录dubbo常见的两种配置方式xml配置注解采⽤@Reference注解配置重试次数采⽤ dubbo:reference 标签的⽅式原因分析采用注解形式时:采⽤标签时结论问题:一次保存请求,数据库增加了3次数据。(dubbo版本:2.6.2,补充:2.7.3版本已修复)原因:定义的接⼝超时时间⽐较短,新增涉及⽂件的操作,流程时间⽐较久,但是线程还是在的,所以dubbo重试了三次dubbo常见的两种配置方式xml配置如果不需要重试次数,需要加上重试次数为0,因为默认是有多次的。<d转载 2020-12-24 14:17:46 · 494 阅读 · 0 评论 -
面经:@Transactional注解失效有哪些场景
目录事务编程式事务声明式事务@Transactional介绍@Transactional注解可以作用于哪些地方?@Transactional注有哪些属性?propagation属性isolation 属性timeout 属性readOnly 属性rollbackFor 属性noRollbackFor属性@Transactional失效的6种场景引言:之前面试【某滴滴】被问@Transactional注解哪些场景下会失效,一时语塞致使面试失败。所以特地去了解@Transactional相关知识。事务转载 2020-12-23 20:59:25 · 372 阅读 · 0 评论 -
【实战】MyBatis实现分页的三种方式
目录MyBatis实现分页的三种方式第一步:搭建开发环境sql关键字limit实现分页利用interceptor实现分页利用PageHelper实现分页接口测试MyBatis实现分页的三种方式利用原生的sql关键字limit来实现利用interceptor来拼接sql,实现和limit一样的功能利用PageHelper来实现第一步:搭建开发环境创建spring项目pom.xml需要引入的依赖如下<dependencies> <dependency&原创 2020-12-23 19:39:36 · 994 阅读 · 2 评论 -
Spring Cloud Ribbon结合RestTemplate实现负载均衡
目录简介Ribbon整合RestTemplate第一步第二步结果简介Spring 提供了一种简单便捷的模板类来进行 API 的调用,那就是 RestTemplate。注意:测试接口前,记得自己搭建Eureka服务注册中心Ribbon整合RestTemplate第一步首先还是创建一个 Maven 项目,然后在 pom.xml 中增加相关依赖,代码如下所示。<?xml version="1.0" encoding="UTF-8"?><project xmlns="htt原创 2020-12-10 13:09:27 · 203 阅读 · 0 评论 -
Spring Cloud Ribbon(负载均衡器)介绍及使用
目录简介Ribbon模块Ribbon使用创建两个服务提供者创建Ribbon项目搭建Eureka注册中心最终结果简介目前主流的负载方案分为以下两种:集中式负载均衡,在消费者和服务提供方中间使用独立的代理方式进行负载,有硬件的(比如 F5),也有软件的(比如 Nginx)。客户端自己做负载均衡,根据自己的请求情况做负载,Ribbon 就属于客户端自己做负载。Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Ribbon原创 2020-12-10 00:02:05 · 305 阅读 · 0 评论 -
bootstrap-3.3.7实现简单登录注册页面
效果图如下代码注册页面<%@ page contentType="text/html;charset=UTF-8" language="java" %><!DOCTYPE html><html lang="zh-CN"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <m原创 2020-07-04 18:18:00 · 4698 阅读 · 4 评论 -
springmvc 用fasterxml.jackson
简介Jackson应该是目前最好的json解析工具了,之前一直用的是org.codehaus.jackson包中的工具,使用的包是jackson-all-1.9.11.jar。升级后的包名都变成了com.fasterxml.jackson,准备测试一下Jackson是有jackson-core、jackson-annotations、jackson-databind三个包的 <!--不导入这个包会报的错误:Caused by: java.lang.ClassNotFoundExcept原创 2020-07-02 14:25:13 · 527 阅读 · 1 评论 -
手把手教你整合SSM(Spring+SpringMVC+MyBatis)并实现简单注册
目录搭建整合环境创建工程导入依赖(pom.xml文件)且创建所需类开始写Spring如上Spring就搞定了,接下来整合SpringMVC最后整合myBatis最后解决一个bug,完成搭建整合环境整合说明:SSM整合可以使用多种方式,本章选用XML+注释的方式整合思路先搭建整合环境先把Spring的配置搭建完成再使用Spring整合SpringMVC框架最后使用Spring整合MyBatis框架此处明天免费提供搭建好的工程,只求点赞创建工程导入依赖(pom.xml文件)且创原创 2020-06-20 22:28:51 · 402 阅读 · 0 评论 -
手把手教你看官方文档使用--MyBatis逆向工程
目录官方文档链接接下来点击Quick Start Guide实操MyBatis逆向工程(MyBatis3Simple)官方文档链接Introduction to MyBatis Generator MyBatis Generator (MBG) is a code generator for MyBatis MyBatis. It will generate code for all versions of MyBatis. It will introspect a database table原创 2020-06-18 16:40:41 · 995 阅读 · 0 评论 -
java项目开发实战--使用ssm框架开发众筹网站(IDEA版)
目录new Empty Project,并创建八个maven模块建立各模块之间的依赖关系(这里开始跟课程有点不一样)将main项目变为web项目具体代码new Empty Project,并创建八个maven模块parent 父工程,聚合其他工程(pom)main Web工程,存放所有页面,框架配置文件(war)manager-impl 后台管理系统,存放控制器类,业务层实现类(jar)manager-api 后台管理系统,存放业务层接口和DAO层接口(jar)potal-impl 前台系统,原创 2020-06-16 22:47:51 · 1289 阅读 · 4 评论 -
实践理解Spring声明式事务管理
目录事务概述Spring事务管理编程式事务管理声明式事务使用方式事务概述在JavaEE企业级开发的应用领域,为了保证数据的完整性和一致性,必须引入数据库事务的概念,所以事务管理是企业级应用程序开发中必不可少的技术。事务就是一组由于逻辑上紧密关联而合并成一个整体(工作单元)的多个数据库操作,这些操作要么都执行,要么都不执行事务的四个关键属性:原子性(atomicity):"原子”的本意是“不可再分”,事务的原子性表现为一个事务中涉及到的多个操作在逻辑上缺一不可。事务的原子性要求事务中的原创 2020-06-11 22:12:06 · 190 阅读 · 0 评论 -
Java实践理解AOP
目录引言AOP概述引言什么是AOP?(面试题),单纯回答面向切面编程不能令面试官满意,最好结合自己的理解。AOP概述AOP(Aspect-Oriented Programming,面向切面编程):是一种新的方法论,是对传统OOP(Obecj-Oriented Programming,面向对象编程)的补充。面向对象 — 纵向继承机制面向切面 — 横向抽取机制AOP编程的主要操作对象是切面(aspect),而切面用于模块化横切关注点(即公共功能Util)在应用AOP编程时,仍然需要原创 2020-06-10 11:57:17 · 232 阅读 · 0 评论 -
Java实现--理解动态代理
目录代理模式动态代理实现步骤代码实现代理模式为其他对象提供一个代理以控制对某个对象的访问。代理类主要负责为委托类(目标对象)预处理消息、过滤消息、传递消息给委托类,代理类不现实具体服务,而是利用委托类来完成服务,并将执行结果封装处理。代理模式有静态代理和动态代理动态代理实现步骤通过实现 InvocationHandler 接口创建自己的调用处理器;通过为 Proxy 类指定 ClassLoader 对象和一组 interface 来创建动态代理类;通过反射机制获得动态代理类的构造函数,其原创 2020-06-08 21:15:00 · 168 阅读 · 0 评论 -
依赖注入(DI)和控制反转(IOC)的理解
目录IOC(Inversion of Control):反转控制IOC的作用IOC容器在Spring中的实现DI(Dependency Injection):依赖注入DI的具体实现依赖注入的两种方式set注入构造方法注入P命名空间字面量和ref字面量ref引用当前spring所管理范围的对象怎么给集合赋值IOC(Inversion of Control):反转控制在应用程序中的组件需要获取资源时,传统的方式是组件主动地从容器中获取所需要的资源。在这样的模式下,开发人员往往需要知道在具体容器中特定资源的原创 2020-06-06 23:32:54 · 502 阅读 · 0 评论 -
在springboot整合thymeleaf模板引擎中@Controller和@RestController不同注解的跳转页面方法
目录通过@RestController注解实现页面跳转:对应H5静态页面使用@Controller注解实现页面跳转对应H5静态页面:总结通过@RestController注解实现页面跳转:对应H5静态页面使用@Controller注解实现页面跳转对应H5静态页面:总结之所以会出现@Controller和@RestController两种注解实现跳转页面不同的方式主要的原因是:通过@RestController源码知道@RestController是@Controller和@Respon原创 2020-12-13 22:03:27 · 609 阅读 · 0 评论 -
SpringBoot+Thymeleaf超好用的前后端数据交互模板引擎
目录准备使用传递对象抽取公共元素附:常用的语法语句引言:开发工具选用IDEA,尽量选择高版本的Thymeleaf避免版本不兼容问题,使用它可以完全替代JSP。准备pom文件除了普通的SpringBoot项目,版本选择1.5.10,除了引入Web模块的场景启动器,数据库模块等等之外,还需要thymeleaf的场景启动器,为了兼容性,还需要指定thymeleaf较高的版本 ,pom文件主要的依赖如下(包含但不仅限于,看需求): <parent> <group转载 2020-12-13 16:50:51 · 2718 阅读 · 0 评论 -
Spring中bean的注入方式
平常的Java开发中,程序员在某个类中需要依赖其它类的方法。 通常是new一个依赖类的实例再调用该实例的方法,这种开发存在的问题是new的类实例不好统一管理。 Spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过Spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。 依赖注入的另一种说法是”控制反转”。通俗的理解是:平常我们new一个实例,这...转载 2020-09-25 09:39:11 · 220 阅读 · 0 评论 -
Spring复习前篇--Ajax和JSON
Ajax和JSONJSON什么是JSONJSON的数据交换格式JSON一定要掌握的两种方法什么是Ajax?什么是异步?现在页面的交互过程Ajax的三个方法JSON什么是JSONJSON(JavaScript Object Notation,js对象表示法)是一种轻量级的数据交换格式(和xml相比很轻量),易于人阅读和编写,同时也易于机器解析和生成。JSON的数据交换格式{key:value,key:value}其中value可以有很多种基本数据类型(字符串、数字、布尔值)数组例如原创 2020-06-06 15:32:24 · 325 阅读 · 0 评论 -
JavaWeb的三大组件
JavaWeb的三大组件引言Servlet容器概念作用Servlet的生命周期(4个阶段)前端如何将数据传递给Servlet?执行过程Filter过滤器概念作用Filter过滤器的使用步骤多个Filter的运行顺序Listener监听器Listener的8个监听对象Listener监听器的使用步骤引言什么是过滤器?什么是监听器?Servlet是什么?Servlet容器概念servlet是一种运行服务端的java应用程序,具有独立于平台和协议的特性,并且可以动态地生成web页面,它工作在原创 2020-06-05 22:24:47 · 870 阅读 · 0 评论