01 1IOC容器原理
1 IOC容器原理IOC概念 控制反转。把对象创建和对象调用的过程,交给Spring进行管理。 使用IOC的目的:降低代码耦合度。 底层原理 xml解析 工厂模式 反射 java对象调用的过程 1234567891011class UserDao{ add(){ }}public class UserService{ public void execute(){ UserDao dao = new UserDao(); dao.add(); }} 使用工厂模式 1234567891011121314151617class UserDao{ add(){ }}class UserFactory{ public static UserDao getDao(){ return new UserDao(); }}class Us...
01 3IOC基于注解容器管理
IOCBean管理基于注解方式基于注解方式IOCBean管理1 简介注解概念 注解是代码特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值) 注解的位置:注解可以作用在类、属性、方法。 使用目的:简化XML配置 IOC的两个步骤 创建对象 注入属性 2 基于注解方式创建对象实现创建对象的注解四个注解功能是一样的,都可以用来创建bean实例。 @Component 组件层 @Service service层 @Controller web层 @Repository DO层 使用注解创建对象bean的步骤 引入依赖。spring-aop(该jar包实现了注解) 开启组件扫描(context命名空间,添加扫描) 检测到组件扫描,会扫描包下的所有类。 可以通过filters过滤 12345678910111213<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/...
00 概述
后续需要整理一下每一部分涉及到的注解。 1 概述 参考教程尚硅谷Spring5课程 主要内容架构 基本概念 IOC容器 AOP Jdbc 事务 Spring5-webflux 概念 开放源代码的JavaEE应用程序框架 针对bean的生命周期进行管理的轻量级容器 特点 解决应用开发的复杂性。降低JavaApi的使用 方便解耦,简化开发。 AOP变成支持 Test方便测试 integeration方便整合集成 方便进行事务操作 核心 IOC:控制反转,把创建对象的过程交给Spring进行挂历。 Aop:面向切面,不修改源代码的情况下,进行功能的增强。 2 入门实例 创建普通java工程。 将jar包导入指定目录下,并添加idea以来路径。 使用bean标签完成spring配置 12345678<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans&quo...
01 2IOC基于XML容器管理
IOCBean管理基于XML方式1 基于XMl方式创建对象1234<bean id="user" class="com.ykl.User"></bean>id:对象唯一标识class:创建对象的类全路径,包类路径name:对象名称标识 在Spring给你配置文件中,使用bean标签,标签里添加对应属性。实现对象的创建 bean中有很多属性 创建对象的时候,执行无参构造函数。 2 基于XML方式注入属性 DI依赖注入,就是注入属性。 原始的属性注入方法123456789101112131415161718192021222324252627282930313233343536/** * Alipay.com Inc. * Copyright (c) 2004-2022 All Rights Reserved. */package com.ykl;/** * @author yinkanglong * @version : Book, v 0.1 2022-10-08 14:32 yinkanglong Exp $...
02 AOP
1 AOP基本概念概念面向切面编程Aspect Oriented Programming 通过 预编译方式 和 运行期间动态代理 实现程序功能的统一维护的一种技术。 AOP是OOP(面相对象编程)的延续。是函数式编程的一种衍生泛型。 利用AOP可以对业务逻辑的各个部分进行隔离。降低耦合度、提高可用性、提高开发效率 主要功能将日志记录、性能统计、安全控制、事务处理、异常处理等代码从业务逻辑代码中划分出来。 通俗描述:不通过修改源代码的方法,在主干功能里添加新功能 2 AOP底层原理动态代理的原理AOP使用动态代理实现面向切面编程 有接口情况,使用JDK动态代理 设计模式:代理模式。创建接口实现类代理对象,增强类的方法。 没有接口情况,使用CGLIB实现动态代理 创建子类继承原来的类。 创建当前类子类的代理对象,增强类中的方法。 动态代理的实现 JDK 动态代理的实现。使用java.lang.reflect.Proxy,通过反射原理实现动态代理。 第一个参数:类加载器 第二个参数:被代理的接口 第三个参数:增强方法的逻辑,实现接口 12static O...
04 事务
事务1 简介事务概念事务是数据库操作最近本的单元,逻辑上一组操作,要么都成功,如果有一个失败,所有的都失败。 事务有四大特性ACID 原子性,不可分割 一致性,多个事务看到的数据是一致的 隔离性,多个事务不会产生影响 持久性,可以持久化 准备环境 创建service和dao层的bean(设计代码架构) 实现转账的业务逻辑(开发业务逻辑) 撰写测试用例进行测试(测试代码) 2 事务步骤操作步骤 开启事务操作 进行业务操作,并添加异常处理 没有发生异常,提交事务。 第四部 出现异常事务回滚 Spring事务管理介绍 事务添加到三层结构的service层 在spring进行事务管理操作 声明式事务管理。通过配置实现。 编程式事务管理。需要写代码 生命式事务管理 注解方式 xml配置文件方式 在Spring进行声明式事务管理,底层使用AOP 提供一个接口,代表事务管理。针对不同的框架提供了不同的实现类。 事务管理器 3 基于注解的声明式事务管理步骤 配置事务管理器 12345678910111213141516```2. 在Spring配置文件中开启事...
2 概念构成
0 概述构成原理 Docker 客户端(Client)Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信。 Docker 主机(Host)一个物理或者虚拟的机器用于执行 Docker 守护进程和容器。 Docker Hub 提供了庞大的镜像集合供使用。一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多个标签(Tag);每个标签对应一个镜像。通常,一个仓库会包含同一个软件不同版本的镜像,而标签就常用于对应该软件的各个版本。我们可以通过 <仓库名>:<标签> 的格式来指定具体是这个软件哪个版本的镜像。如果不给出标签,将以 latest 作为默认标签。 Docker Machine。Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure。 基本组成 镜像(Image):Docker 镜像(Image),就...
3 常用命令
0 基本命令概述 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889[root@192 home]# docker --helpUsage: docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions: --config string Location of client config files (default "/root/.docker") -c, --context string Name of the context to use to connect...














